Sign in to follow this  
  • entries
    23
  • comments
    31
  • views
    54804

About this blog

Helpful Bits Of Code

Entries in this blog

RLS0812

Craft The World is in interesting hybrid of Gnomoria and Terraria .
The main game files can not be altered ( yet ), however all of the resource files can be accessed and changed.
( IE: creatures, dwarves, behaviors, crafting recipes, textures, sound, animations, items, armor, weapons, money, e.t.c. )

To get into the files, you will need to install 7zip and a text editor .
First locate your Craft The World game directory. Next locate "main.pak" and open it with 7zip.
Now locate the .xml files you wish to edit, and extract them to a folder. ( The ones I use the most are recipes.xml , beastiary.xml , creatures.xml, craft_resources.xml , and resource_bind.xml )
Make a backup of the original files, than edit. Once done, drag-and-drop the edited .xml file into the 7zip window for "main.pak" .

Congratulations! You just modded the game !

RLS0812

I keep reading all the hype about "VR", and every time I wish I could lecture the author about how almost nothing is actually new or innovative. A lot the technology surrounding VR has it's roots almost 40 years ago !

Here is a short history lesson:
1950's - first experimentation in virtual reality called "Sensorama".
First_VR.jpg

1965 - first headset prototyped.
First_VR_Headset.jpg

1972 - first known 3D object created.
First_3_D_Object.jpg

1978 - first explorable 3D city was created.
1980 - first virtual reality arcade game was produced called "Battle Zone".
First_VR_Arcade_Game.jpg

1984 - portable VR headsets first came out .
1984 - first 3D textured game called "3D Monster Maze".
First_textured_3d_game.jpg
.
1985 - first data glove was prototyped.
1985 - first online virtual world created, called "Habitat".
late 1980's - NASA was experimenting with the technology for flight controls.
NASA_VR.jpg

1991 - tilt motion controls were developed for the headset.
1992 - omnidirectional treadmills were first prototyped.
First_Game_Tredmill.jpg

1993 - a data glove was produced for full range motion, including fingers.
1993 - first VR magazine came out.
First_VR_Magazine.jpg
.
1994 - first online 3D virtual world created, called "Activeworlds"
1999 - first virtual shopping mall opened.
First_Virtual_Mall.jpg
.
2003 - first virtual land sold
2009 - first virtual space station sold ( $330,000 USD )

RLS0812

I am always interested seeing all the unique and creative designs game developers come up with for their city. My favorite architecture styles would have to be modernist, brutalist, and classic futurist.
After watching some beta game play footage of Mirror's Edge Catalyst, I completely fell in love with the design and layout of City Of Glass.
It has the right balance of modernist/futurist and brutalistic features! I would like living in that 'dystopian' world !
Pictures Link

RLS0812

I hate being mislead ... I REALLY hate being mislead by folks who leverage nostalgia to their advantage.
I present to you: Neocities. This web hosting service is claiming to recreate the "good old days" of GeoCities !

The problem is, I am one of the folks who actually used GeoCities a lot before Yahoo bought them out. In the old GeoCities, you could use a web editor that allowed you to drag-and-drop elements on your web page - no coding was required to create very nice looking ( for the time ) web sites.
NeoCities offers nothing like that. Everything is 100% hard coding, with no drag-and-drop features. What the site does offer is their own text editor, and that is it. There is nothing noteworthy to distinguish them from any other basic HTML web host!

In all honesty, I wish they would offer some basic PHP so that I could at least create a dynamic web page!

To answer any questions before they are asked, yes I did mess around with all the available features in NeoCities before posting this short review/commentary.

RLS0812

Steam, and all of it's child processes, may not seem like much for those that have fast internet and a higher end computer, but for me and many others it can be a pain in the arse.
Steam ( and it's child processes ) tends to eat up a lot of my RAM, and continuously attempts to download large 'updates' that kills my turtle speed internet ( no, I can not change the ISP ).
Normally it can be a hassle trying to kill the processes ( closing the Steam browser doesn't stop Steam and it's child processes from running ), however I have made a simple batch script that can do the job in 1 click.


  1. Create a new text file
  2. Change the file extension to .bat
  3. Edit with your favorite text editor - add the following line of code
taskkill /F /IM Steam.exe
Make sure to save the new file somewhere handy for when you need to stop the Steam processes!

RLS0812
Whenever you are working with files in Java, sometimes you need to get the full path to the directory the .jar file is located in. Most of the time you can just use
.String path = "./File_Name.txt"; // Note the "." before the "/"
.
when dealing with reading/writing/creating files and directories - HOWEVER for those times when that is not enough, you'll need to extract a "clean" path to the .jar file.
Below is a simplified example that does exactly this. I cut out all of the unnecessary, over complicated, and/or outdated items you may find in other posts about this subject.
I will explain how it works as we go along.
.public class Main { public static void main (String[] args) throws Exception { String i; // ignore - not important String pathName; // path to create new file String fileName; // name of new file File file; // File object to create i = "\n**********\n"; // ignore - not important fileName = "/Test_File.txt"; // set the file name pathName = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath(); // get the path of the .jar pathName = URLDecoder.decode(pathName,"utf-8"); // convert the path format from HTML to UTF pathName = pathName.substring(1,pathName.lastIndexOf("/") ); //create a new string by removing the garbage System.out.println(i + pathName + fileName + i ); // this is for debugging - see the results file = new File(pathName + fileName); // create file file.createNewFile(); // make new file }}
.
.
.pathName = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
.
This returns the *raw* path of the .jar file in a HTML format with some extra junk that is not needed. Using ".toURI()", ".toURL()" and ".toString() is not necessary AND will create more junk in the path name!
.[quote]

C:\Users\RICK\Desktop>java -jar test1111.jar

**********
/C:/Users/RICK/Desktop/Test1111.jar
**********
[/quote]
.
Note: If you have any directories with special characters in them, you will end up with the HTML equivalent ... "%20" instead of " " for example.
The next line parses the HTML format into UTF, which Java can understand as a path name
.pathName = URLDecoder.decode(pathName,"utf-8");
.
This cleans up the HTML format, but leaves some junk behind
.[quote]

C:\Users\RICK\Desktop>java -jar test1111.jar

**********
/C:/Users/RICK/Desktop/Test1111.jar
**********[/quote]
.
Now we need to remove the junk, and create a usable path for Java to use
.pathName = pathName.substring(1,pathName.lastIndexOf("/") );
.
This removed the first "/" from the string, and also cuts off the name of the .jar file !

This creates a usable path name, to be used, in this example, to make a file
.file = new File(pathName + fileName); file.createNewFile();
.
.[quote]

C:\Users\RICK\Desktop>java -jar test1111.jar

**********
C:/Users/RICK/Desktop/Test_File.txt
**********[/quote]
.
Thank you for reading. Please leave feedback below !
RLS0812
A few months ago I had a great idea for a business in Detroit - a specialized reclamation company that would provide a low cost method for cleaning up run down Detroit buildings.

3085_1packard_4__detroit_2012_6134255.jpg



With a rough draft of business plan in hand, I started researching all the licensing and ordinances I would need to comply with in the Detroit area.
Almost instantly I ran into a brick wall. From what I was reading on the Detroit Licensing Site, it's almost imposable to get a new business license.
Confused and a bit aggravated, I made several phone calls to city hall, asking many questions. After a few hours of run around, I gave up, not getting any answers from them.
From there, I called up a few Detroit business groups with questions, and I fond the answers I was looking for.
Detroit construction and manufacturing licensing / ordinance laws are written specifically to protect existing businesses from new competition !
I couldn't believe it! I drew up another business plan, this time for something in the auto industry category - a press metal shop - and started doing my researcher again on what was required.
Again I hit a brick wall of bureaucratic "red tape".
I still didn't quite believe how anti "new" industrial the Detroit laws were, so I tried one more time, this time as company that manufactures tricycles.

tricycle.jpg


This time when I did my legal researcher, I took my time, and made sure I fully understood everything involved.
Wouldn't you know it, yet another wall.
If Detroit wants to stop being the cesspit of the Untied States, with stupidly high unemployment, stupidly high crime, and a major financial problem, them need to drop ALL of their protectionist laws, and make the city once again friendly for new manufacturing and construction business.
RLS0812
The game "5 Nights At Freddy's 3" hasn't been out a full day yet, and already there is speculation on who the animatronic "Springtrap" is.
One of the most popular theories is that he the only animatronic that is not a phantom - Bonnie.
I do not believe Springtrap is from the other games.
Let's take a close look at Springtrap ...
Springtrap_5naf3.jpg

Please take note of the eyes, the nose, and the button.

Bonnie from 5 Nights At Freddy's 1 did not have buttons, nor did he have eyebrows. His nose was also larger than Springtrap's .
Bonnie_5naf1.jpg
...
Bonnie #1 from 5 Nights At Freddy's 2 *did* have buttons, however the animatronic was already torn apart ! Please note the shape of the "stomach" patch does not match Springtrap's .
Bonnie_1_5naf2.jpg
...
Bonnie #2 ( Toy Bonnie ) from 5 Nights At Freddy's 2 has absolutely nothing that matches Springtrap
Bonnie_toy_2_5naf2.jpg
...
From what I have seen, I think Springtrap is a completely new character.
According to the 'new' phone guy (day 2), he was discovered in an extra room.
According to the 'Vintage Training Audio Tapes', the old 'spring suits' were sealed off in the 'safe room' due to 'legal' reasons (nightmare mode).
According to the mini game end of day 5, Purple Man was killed in a rabbit spring suit - it was also hinted at in the night 5 'Vintage Training Audio Tapes'.
Purple_man_death_fnaf3.jpg
...
From all this, I believe that Springtrap is an experimental animatronic that was sealed away in the 'safe room' [*1] after killing Purple Man.


[*1] It is unclear which 'safe room' this was at. According to the 'Vintage Training Audio Tapes', there were many Freddy Fazbear Pizza locations .
RLS0812
Very recently I found out that I was one of over 80 million accounts that were hacked from Anthem ( due to their non existent account security ) .
I immediately filed a security freeze with all 3 Credit Bureaus, and than started doing research on ways the hackers could use my personal information (Name, Social Security Number, Address, e.t.c.) .
Is it frightening what some one in the United States can do with someone else's information that will never show up on a credit report until after arrest warrants are issued.

Here is what me and tens of millions of others face:
With my personal information some one can:
Receive identification cards ( or driver's license ), apply for my social security card, and obtain my birth certificate.
They can fraudulently apply for government services in my name.
They can fraudulently file tax returns.
They can access my bank account without account information.
They can access all of my retirement accounts without account information.
They can sell any assets I own ( property, cars, stocks, bonds, e.t.c. ).
They can take out certain lines of credit ( "No Credit Check !" ) for anything from furniture, to vehicles.
They can apply for jobs in my name.
They can apply for certain government grants in my name.


This is just the tip of the iceberg - there is SO much a fraudster can do without tipping off the Credit Bureaus anything wrong is happening !!!
RLS0812
There is a bug in Eclipse Indigo that has been driving me up a wall the last few days.
Whenever you delete a Java project, it's launch configuration ( File > Export > (type) > Launch Configuration ) remains on the list ( and is invalid ).
The invalid configuration does not show up on Run > Run Configurations ( after the project is deleted ), and there is no way to delete them from inside of Eclipse.

The problem with this bug is that every time you go to export a project, you have to pick a launch configuration from a list containing both valid and invalid options.
The more dead projects there are, the harder it is to find the correct launch configuration. In my case, I had 66 Launch Configurations, with only 6 of them being valid.

To fix the problem, you can delete the invalid configs by hand. They are located in the following file
(Wherever Eclipse Saves It's Files At) \.metadata\.plugins\org.eclipse.debug.core\.launches
RLS0812
Below you will find a fully functional code example that shows how to do many common tasks with JPanel & JFrame. I stripped out as much useless "fluff" as I could, leaving the code as bare as possible( all code is in a single class ) .
If you have a question on a specific area please refer to a Google search before asking here.

Things this code demonstrates:
Buttons, and how to identify which one was clicked
Action listeners
Mouse listeners, and how to get exact click coordinates
Key listener
Focuses listener, and how to fix a common issue when using several listeners at one time
Drawing text and Unicode
Fonts, text size ,text styles, text colors
Popup windows
How to get anti-aliasing to actually work
Loading images from files and URLs
Resizing images
Drawing images


Please note: this code is not optimized - but it is a single class and fully functional !!!import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.RenderingHints;import java.awt.event.*;import java.net.URL;import javax.imageio.ImageIO;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;public class Main extends JPanel implements KeyListener,ActionListener,MouseListener,FocusListener { public static void main(String args[]) { Main m = new Main(); // building object container - using " 'this' " will not work JFrame frame = new JFrame("Title Here"); // set title frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // set behavior when closed frame.addKeyListener(m); // add keylistener frame.addFocusListener(m); // add focuse listener frame.addMouseListener(m); // add mouse listener JButton button = new JButton("Click"); // build a button button.setBounds(1, 200, 80, 30); // location and size of button frame.add(button); // add a button button.addActionListener(m); // something happens when button is clicked frame.add(m); // package and create the Jframe frame.setSize(new Dimension(300,300 )); // set window size frame.setFocusable(true); // add focuse button.setFocusable(true); // add focuse frame.setVisible(true); // make the window } // This method is automatically called \\ public void paintComponent(Graphics g) { Graphics2D g1 = (Graphics2D) g; // this is for antialiasing RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);// this is for antialiasing g1.setRenderingHints(rh);// this is for antialiasing g.setFont(new Font("Times New Roman",Font.BOLD,40)); // set font try { // add an image ( replace "URL" with "File" if loading from local hard drive Image img = ImageIO.read( new URL("http://img.brothersoft.com/icon/softimage/s/smileysidebar-387849-1280302029.jpeg") ); // get image from internet g.drawImage(img, 1, 100, null); // draw normal image g.drawImage(img.getScaledInstance(15, 15, Image.SCALE_DEFAULT), 1, 130, null); // draw resized image } catch (Exception e) {} // I'm too lazy to handle this error g.setColor(Color.black); // set text color g.drawString("Hello World ! ", 1, 30); // draw some words g.drawString("\u263A", 1, 100); // draw some unicode } public void keyReleased(KeyEvent kr) { // do something when a key is released jo("You pushed a key ! \n Key Name: " + kr.getKeyChar() ); // create popup window when a key is pressed }public void actionPerformed(ActionEvent bp) { // when a button is pressed, do something jo("You pushed the button ! \n Button Name: " + bp.getActionCommand() ); // create popup window when button is pressed} // "getActionCommand()" is the name of buttonpublic void mouseReleased(MouseEvent me) { // when a mouse button is clicked jo("Mouse clicked !\n Mouse Button: " + me.getButton() + "\nLocation Of Click: X-" + me.getX() + " Y-" + me.getY() ); // were did you click ? }public void focusLost(FocusEvent fl) { fl.getComponent().requestFocusInWindow(); // this keeps the window focused}public void jo (String s){ // added this to save space else were JOptionPane.showMessageDialog( new JFrame(""), s); // popup wondow}// These methods have to be declared \\public void keyTyped(KeyEvent kt) {}public void keyPressed(KeyEvent kp) {}public void focusGained(FocusEvent fg) {}public void mouseClicked(MouseEvent me) {}public void mouseEntered(MouseEvent me) {}public void mouseExited(MouseEvent me) {}public void mousePressed(MouseEvent me) {}}
RLS0812
Don't Starve is an interesting survival & adventure game that places a player into a brutal survival environment, were one seemingly innocent mistake can cause instant death.
After playing this game for a while there were many things that started to annoy the #### out of me ...
IE:
* Always eating
* Gobblers appearing constantly
* Vegetable farming being painfully slow
* Items made with hard to get items break very fast
* Recipes that take way too many items to make simple stuff
* Certain "monsters" having way too much health or attack power ( normal frogs for example )

To make the game more enjoyable to play, I have been fiddling around with the game's scripts, conveniently written in Lua.
Here is a basic guide on how to change basic stuff in game. (( Remember to make backups before messing with the code )) . I recommend using NotePad++ for script editing.

All the important scripts are located in [color=#008000]\Don't Starve\data\scripts[/color] . The main script that controls a lot of the game is [color=#008000]tuning.lua[/color] [color=#000000].[/color]
In [color=#008000]tuning.lua [/color][color=#000000]:[/color]
* If you really hate gobblers, change the spawn chance under PERD_SPAWNCHANCE
* To increase the uses of any item, search for USES = and change whatever you like
* To eat less change the following 2 areas: lower the local calories_per_day and than change the food calories reflect your change CALORIES_TINY = CALORIES_SMALL = CALORIES_MEDSMALL = CALORIES_MED = CALORIES_LARGE = CALORIES_HUGE = CALORIES_SUPERHUGE =
* If things rot too fast for you, increase the rate of PERISH
* You can change the HP and attack damage of all the creatures in the game here.
* You can change all armor and weapon damage here also
* Inventory item stacks can be found under STACK_SIZE
* How much health you recover from eating certain items can be found under HEALTH
* How much health you recover from eating certain items can be found under SANITY
* Gain sanity during the daylight by changing SANITY_DAY_GAIN

Under [color=#008000]Don't Starve\data\scripts\prefabs[/color] look for [color=#008000]birdcage.lua[/color] and change this to get more seed drops from caged birdsif Prefabs[seed_name] then local num_seeds = math.random(2)
Under [color=#008000]Don't Starve\data\scripts[/color] look for [color=#008000]recipes.lua[/color] and have fun changing the recipes for in game items biggrin.png


If you know of any more useful game changes, please post it below.
RLS0812
The World Health Organization has announced that it will be cutting back the "calories from sugar recommendation" to 5% of daily consumption. [LINK]

Problem is - no one has bothered to do the math.

The daily calorie intake for an adult human is 2,000 per day. [LINK]
This makes the max sugar intake 100 calories ( 2000 * 0.05 = 100 ) .
Sugar is 4 calories per gram. [LINK]
This means that an adult human is only allowed 25 grams of sugar a day ( 100 / 4 = 25 ) .

With that math done, I looked up how much sugar is in 1 serving of common fruit [LINK]
I than compared it to the daily recommendation of fruit [LINK]

It turns out if you follow the new sugar guidelines the WHO has set out, you will have to cut back significantly on your fruit intake.
Taking into account all the food you eat per day, you'd be limited to 1/4 to 1/2 serving of fruit per day - the nutrition guidelines say you need at least 2 servings.

Edit: I received a comment below regarding "sugar types" ...
As some one who has unstable blood sugar, I can tell you this: glucose is glucose, regardless of were it comes from. A single apple will spike my blood sugar the same as a 1oz chocolate bar ( I checked ) !
RLS0812
I mentioned a couple days ago I was working on a basic map generator - that has taken a life of it's own.
Here is the latest version of that game project ! [Download Link]
If you want to mess around with it, download the file ( Java 1.7 required ), open your command prompt, navigate to were the file is located, and type in the following command "java -jar test.jar"

Features of this version:
* Random map generation
* Scrolling map
* Interactable map items
* Player inventory
* Player skills
* Looting
* Items
* Actions

As of right now, all you are able to do is move around the map, chop trees ( with an axe ), and collect the loot.
RLS0812
In Java whenever you want to copy an object's current state, you use the clone() method.
Simply using this does not work Object a = new Object(); Object b = a; // <-- this creates a reference, not a copy
Fortunately Java has built in methods for creating a perfect copy of your object's current state. Back in the old days clone() did not work so well, however as of Java 1.7 I have not had any issues with it.
.
Class A
.public class Class_A { Class_B origional; Class_B clone; public Class_A(){ origional = new Class_B(); // <--- Create a new object from Class B clone = origional.clone(); // <--- Call the class method to produce a clone clone.s = "World !"; // <--- set the clone's string to something else System.out.println(origional.getString() + " " + clone.getString() ); }}
.
Class B
.public class Class_B implements Cloneable{ // <--- Class must implement Cloneable !!! int x; String s; Boolean b; public Class_B(){ x = 1; s = "Hello"; // <--- Pay attention to this verable b = true; } public String getString(){return s;} // <--- Method returns the string verable public Class_B clone() { // <--- Method must have a try block !!! try { return (Class_B) super.clone(); // <--- Returns a clone of it's self } catch (Exception e) { System.out.println("\n ===Error=== \n" + e + "\n" ); // <--- Always output errors return null;} }}
RLS0812
An interesting thing has been going on the last couple days - a project I started out to just test map generation has taken a life of it's own.

The project was only going to last a day or so - just long enough to test item spawning on a map - , but for some reason it now looks more like a game "skeleton" than anything else.
As of when I posted this, the unnamed game has:
* Tree, rock, plant, and mining node generation based on type and rarity
* Player movement
* Map scrolling
* Collision detection
* Working item construct
* Working player construct
* Working inventory construct

Unfortunately the "game" lacks (these could be my "TODO" list) :
* GUI ( it's pure text output )
* Player actions ( mining, cutting trees, e.t.c. )
* Statistics
* Saving a player's state
* NPCs
* Looting system
* Server / Client
* Chat

Here is a peek at my spaghetti code - this class handles inventory ( and is the last one I worked on )
.import java.util.ArrayList;import java.util.List;public class Inventory { InvItems ii; MakeItems mi; int selected; String dump; List quantity; List iolist; public Inventory(InvItems i, MakeItems m){ ii = i; mi = m; selected = 1; iolist = new ArrayList(); quantity = new ArrayList(); iolist.add(ii); // < -- must have these 2 initialized for some reason quantity.add(0); //||\\ addItem(mi.sample_food,5); addItem(mi.sample_tools,1); //||\\ } public boolean checkFor(InvItems i, int num){ int temp = iolist.size(); for (int f = 1; f < temp; f++){ if (i.getName().equals( iolist.get(f).getName() ) ){ if (quantity.get(f) >= num){return true;} else {return false;} } } return false; } public void addItem(InvItems i, int num){ boolean st = true; if (i.getStackable() == true ){ int temp = iolist.size(); for (int f = 1; f < temp; f ++){ temp = iolist.size(); if (iolist.get(f).getName().equals(i.getName() ) ){ st = false; quantity.set(f, quantity.get(f) + num ); break; } // <-- get name if else{} } // <-- for loop if (st == true){iolist.add(i);quantity.add(num);} } // <-- stackable if else{iolist.add(i);quantity.add(num);} } public boolean removeItems(InvItems i, int num){ if (checkFor(i,num)){ int temp = iolist.size(); for (int f = 1; f < temp; f ++){ if(i.getName().equals(iolist.get(f).getName() ) ) { if (quantity.get(f) - num == 0){ iolist.remove(f); quantity.remove(f); return true; } else{ quantity.set(f, quantity.get(f) - num); if (selected >= iolist.size() ) {selected = 1;} return true; } } // <-- name } // <-- for loop return false; } // <-- check for else{return false;} } public String getInventory(){ dump = "\n=== Inventory ===\n"; int temp = iolist.size(); for (int f = 1; f < temp; f ++){ if (f == selected){dump += "[X]";} else{dump += "[=]";} dump += "[" + f + "] "; dump += iolist.get(f).getName() + " - " ; dump += quantity.get(f) + "\n" ; } return dump; } public boolean setSelected(int n){ if (n >= iolist.size() || n == 0){return false;} else{ selected = n; return true;} } public void say(String s){System.out.println(s);} }
RLS0812
A simplified example of how to work with files in C++ .
.// Create File, Write To File// Close File// Open File, Dump Text To Aray// Close File// Delete File#include #include #include using namespace std;int main(){ string str[1]; ofstream a_file ("Ftest.txt"); a_file<<"File Test"; a_file.close();string line[1]; ifstream b_file ("Ftest.txt"); if (b_file.is_open()) { getline (b_file,line[0]); cout << line << endl; b_file.close(); remove("Ftest.txt"); }}
RLS0812
The following is a very basic JavaScript game were you move a square around the screen. This script demonstrated how easy it is to set up your canvas and elements.
.[code=js:0]
RLS0812
This is not the best written longin page ever written, but should give you a good idea how to write your own. This code includes it's own anti injection code, and also uses it's own session IDs.

The SQL.PHP file has mechanisms for auto building tables, deleting elements from tables and outputting what you have in your tables.

Index.htmlLogin Page ';}// End Of Declarationns if (!check("Sign_Up") and !check("Sign_In") and !check("Su_User_Name") and !check("Si_User_Name") and !isset($_COOKIE["ID"]) ){ echo "Welcome! Please sign in or sign up !
"; button("Sign_In","Sign In"); button("Sign_Up","Sign Up"); } if (check("Sign_In") ) {echo 'Please sign in here.

User Name:   Password:  

'; } if (check("Sign_Up") ) { echo 'Please do not use special characters.
Letters, numbers and _ allowed.
Lenght must be longer than 4 characters.

User Name:   Game Name:   Password:  

'; } if (check("Su_User_Name") and check("Su_Game_Name") and check("Su_Password") ){ if (!verify($_POST["Su_User_Name"]) or !verify($_POST["Su_Game_Name"]) or !verify($_POST["Su_Password"]) or strlen($_POST["Su_User_Name"]) < 5 or strlen($_POST["Su_Game_Name"]) < 5 or strlen($_POST["Su_Password"]) < 5 ) { echo "

Letters, numbers and _ only. Lenght must be greater than 4 characters.


"; button("x","<-- Back"); } else{ if (test("Login_Name",$_POST["Su_User_Name"]) ){ echo "User name taken.
"; button("x","<-- Back"); } elseif(test("Game_Name",$_POST["Su_Game_Name"]) ){ echo "Game name taken.
"; button("x","<-- Back"); } else{ $x = "1234567890abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXYZ"; $x2 = ''; for ($i = 0; $i < 21; $i++) { $x2 .= $x[rand(0, strlen($x) - 1)]; } mysqli_query($sql,"INSERT INTO ".$table." (Game_Name,Login_Name,Blarg,ID)VALUES('".$_POST["Su_Game_Name"]."','".$_POST["Su_User_Name"]."','" .$_POST["Su_Password"]."','".$x2."')"); echo "Account created !
"; $temp = mysqli_fetch_assoc(mysqli_query($sql,"SELECT * FROM ".$table." WHERE ID='".$x2."'") ); setcookie("ID",$temp["ID"], time()+3600); button("x","<-- Back"); } } } if (check("Si_User_Name") and check("Si_Password") ) { $tmp1 = strip($_POST["Si_User_Name"]); $tmp2 = strip($_POST["Si_Password"]); if (test("Login_Name",$tmp1) and test("Blarg",$tmp2) ){ echo "Logged in !
"; $temp = mysqli_fetch_assoc(mysqli_query($sql,"SELECT * FROM ".$table." WHERE Login_Name='".$tmp1."'") ); setcookie("ID",$temp["ID"], time()+3600); button("x","<-- Back"); } else{ echo "Bad name or password. Please try again.
"; button("x","<-- Back"); } } ?>

.
sql.php
.

'; }}if (isset($_COOKIE["ID"])){ $result = mysqli_query($sql,"SELECT ID FROM ".$table." WHERE ID='".strip($_COOKIE["ID"])."'"); if (mysqli_fetch_array($result)){ $temp = mysqli_fetch_assoc(mysqli_query($sql,"SELECT Game_Name FROM ".$table." WHERE ID='".strip($_COOKIE["ID"])."'") ); echo "Welcome " . $temp["Game_Name"] . " !
"; } else{ unset($_COOKIE["ID"]); back(); }} else{ back(); }// Table Handeling if ($update){if ( mysqli_query($sql, "SELECT 1 FROM ". $table . " ") ) { $get = mysqli_query($sql, "SHOW COLUMNS FROM " . $table); echo "

Existing columns


"; while ($col = mysqli_fetch_row($get)) { echo "Existing column: " .$col[0] . "
";} echo"

=====

"; for ($x=0; $x!= count($add); $x++){ if(!mysqli_query($sql,"SELECT ". $add[$x] ." FROM ".$table . " ") ){ mysqli_query($sql,"ALTER TABLE ". $table ." ADD ".$add[$x] . " TEXT "); echo "Adding column: ". $add[$x] . "
"; }} for ($x=0; $x!= count($sub); $x++){ if(mysqli_query($sql,"SELECT ". $sub[$x] ." FROM ".$table . " ") ){ mysqli_query($sql,"ALTER TABLE " . $table . " DROP COLUMN " . $sub[$x] . " "); echo "Removing column: ". $sub[$x] . "
"; }} echo"

=====

"; $get = mysqli_query($sql, "SHOW COLUMNS FROM " . $table); echo "

Modifyed columns


"; while ($col = mysqli_fetch_row($get)) { echo "Existing column: " .$col[0] . "
"; }}else{echo "Error: Table '" . $table . "' does not exist
";} } ?>
RLS0812
This outputs the entire song "99 Bottles Of Beer" and is written in AWCode. @ AW Code is quite literally an object oriented scripting language. @ There are no variables, so certain "hacks" have to be used to get around this. @ All output is displayed on Sign5.rwx ====Model: Sign5.rwxDescription[The output]Action[create name sgn]Model:pole1m.rwxDescription[Var 1]Action[create name bbow, animate me . 1 1 999 astop; adone sign "bottles of beer on the wall" name=sgn]Model:pole1m.rwxDescription[Var 2]Action[create name bob, animate me . 1 1 999 astop; adone sign "bottles of beer ... take one down, pass it around" name=sgn]Model:pole1m.rwxDescription[Var 3]Action[create name end, animate me . 1 1 999 astop; adone sign "no more " name=sgn]Model:pole1m.rwxDescription[Var 4]Action[create name end2, animate me . 1 1 999 astop; adone sign "bottles of beer ... go to the store to get some more, " name=sgn]Model:pole1m.rwxModel:pole1m.rwxDescription[The Start Button]Action[create color red;activate astart 99] ====Model: pole1m.rwxDescription[99]Action[create name 99, animate me . 1 1 999 astop;adone sign "99" name=sng,astart bbow,astart 99a]Model: pole1m.rwxDescription[99a]Action[create name 99a, animate me . 1 1 2000 astop;adone sign "99" name=sng,astart bob,astart 99b]Model: pole1m.rwxDescription[99b]Action[create name 99b, animate me . 1 1 3000 astop;adone sign "98" name=sng,astart bbow,astart 98] ====Model: pole1m.rwxDescription[98]Action[create name 98, animate me . 1 1 999 astop;adone sign "98" name=sng,astart bbow,astart 98a]Model: pole1m.rwxDescription[98a]Action[create name 98a, animate me . 1 1 2000 astop;adone sign "98" name=sng,astart bob,astart 98b]Model: pole1m.rwxDescription[98b]Action[create name 98b, animate me . 1 1 3000 astop;adone sign "97" name=sng,astart bbow,astart 97] ====Model: pole1m.rwxDescription[97]Action[create name 97, animate me . 1 1 999 astop;adone sign "97" name=sng,astart bbow,astart 97a]Model: pole1m.rwxDescription[97a]Action[create name 97a, animate me . 1 1 2000 astop;adone sign "97" name=sng,astart bob,astart 97b]Model: pole1m.rwxDescription[97b]Action[create name 97b, animate me . 1 1 3000 astop;adone sign "96" name=sng,astart bbow,astart 96] ====Model: pole1m.rwxDescription[96]Action[create name 96, animate me . 1 1 999 astop;adone sign "96" name=sng,astart bbow,astart 96a]Model: pole1m.rwxDescription[96a]Action[create name 96a, animate me . 1 1 2000 astop;adone sign "96" name=sng,astart bob,astart 96b]Model: pole1m.rwxDescription[96b]Action[create name 96b, animate me . 1 1 3000 astop;adone sign "95" name=sng,astart bbow,astart 95] ====Model: pole1m.rwxDescription[95]Action[create name 95, animate me . 1 1 999 astop;adone sign "95" name=sng,astart bbow,astart 95a]Model: pole1m.rwxDescription[95a]Action[create name 95a, animate me . 1 1 2000 astop;adone sign "95" name=sng,astart bob,astart 95b]Model: pole1m.rwxDescription[95b]Action[create name 95b, animate me . 1 1 3000 astop;adone sign "94" name=sng,astart bbow,astart 94] ====Model: pole1m.rwxDescription[94]Action[create name 94, animate me . 1 1 999 astop;adone sign "94" name=sng,astart bbow,astart 94a]Model: pole1m.rwxDescription[94a]Action[create name 94a, animate me . 1 1 2000 astop;adone sign "94" name=sng,astart bob,astart 94b]Model: pole1m.rwxDescription[94b]Action[create name 94b, animate me . 1 1 3000 astop;adone sign "93" name=sng,astart bbow,astart 93] ====Model: pole1m.rwxDescription[93]Action[create name 93, animate me . 1 1 999 astop;adone sign "93" name=sng,astart bbow,astart 93a]Model: pole1m.rwxDescription[93a]Action[create name 93a, animate me . 1 1 2000 astop;adone sign "93" name=sng,astart bob,astart 93b]Model: pole1m.rwxDescription[93b]Action[create name 93b, animate me . 1 1 3000 astop;adone sign "92" name=sng,astart bbow,astart 92] ====Model: pole1m.rwxDescription[92]Action[create name 92, animate me . 1 1 999 astop;adone sign "92" name=sng,astart bbow,astart 92a]Model: pole1m.rwxDescription[92a]Action[create name 92a, animate me . 1 1 2000 astop;adone sign "92" name=sng,astart bob,astart 92b]Model: pole1m.rwxDescription[92b]Action[create name 92b, animate me . 1 1 3000 astop;adone sign "91" name=sng,astart bbow,astart 91] ====Model: pole1m.rwxDescription[91]Action[create name 91, animate me . 1 1 999 astop;adone sign "91" name=sng,astart bbow,astart 91a]Model: pole1m.rwxDescription[91a]Action[create name 91a, animate me . 1 1 2000 astop;adone sign "91" name=sng,astart bob,astart 91b]Model: pole1m.rwxDescription[91b]Action[create name 91b, animate me . 1 1 3000 astop;adone sign "90" name=sng,astart bbow,astart 90] ====Model: pole1m.rwxDescription[90]Action[create name 90, animate me . 1 1 999 astop;adone sign "90" name=sng,astart bbow,astart 90a]Model: pole1m.rwxDescription[90a]Action[create name 90a, animate me . 1 1 2000 astop;adone sign "90" name=sng,astart bob,astart 90b]Model: pole1m.rwxDescription[90b]Action[create name 90b, animate me . 1 1 3000 astop;adone sign "89" name=sng,astart bbow,astart 89] ====Model: pole1m.rwxDescription[89]Action[create name 89, animate me . 1 1 999 astop;adone sign "89" name=sng,astart bbow,astart 89a]Model: pole1m.rwxDescription[89a]Action[create name 89a, animate me . 1 1 2000 astop;adone sign "89" name=sng,astart bob,astart 89b]Model: pole1m.rwxDescription[89b]Action[create name 89b, animate me . 1 1 3000 astop;adone sign "88" name=sng,astart bbow,astart 88] ====Model: pole1m.rwxDescription[88]Action[create name 88, animate me . 1 1 999 astop;adone sign "88" name=sng,astart bbow,astart 88a]Model: pole1m.rwxDescription[88a]Action[create name 88a, animate me . 1 1 2000 astop;adone sign "88" name=sng,astart bob,astart 88b]Model: pole1m.rwxDescription[88b]Action[create name 88b, animate me . 1 1 3000 astop;adone sign "87" name=sng,astart bbow,astart 87] ====Model: pole1m.rwxDescription[87]Action[create name 87, animate me . 1 1 999 astop;adone sign "87" name=sng,astart bbow,astart 87a]Model: pole1m.rwxDescription[87a]Action[create name 87a, animate me . 1 1 2000 astop;adone sign "87" name=sng,astart bob,astart 87b]Model: pole1m.rwxDescription[87b]Action[create name 87b, animate me . 1 1 3000 astop;adone sign "86" name=sng,astart bbow,astart 86] ====Model: pole1m.rwxDescription[86]Action[create name 86, animate me . 1 1 999 astop;adone sign "86" name=sng,astart bbow,astart 86a]Model: pole1m.rwxDescription[86a]Action[create name 86a, animate me . 1 1 2000 astop;adone sign "86" name=sng,astart bob,astart 86b]Model: pole1m.rwxDescription[86b]Action[create name 86b, animate me . 1 1 3000 astop;adone sign "85" name=sng,astart bbow,astart 85] ====Model: pole1m.rwxDescription[85]Action[create name 85, animate me . 1 1 999 astop;adone sign "85" name=sng,astart bbow,astart 85a]Model: pole1m.rwxDescription[85a]Action[create name 85a, animate me . 1 1 2000 astop;adone sign "85" name=sng,astart bob,astart 85b]Model: pole1m.rwxDescription[85b]Action[create name 85b, animate me . 1 1 3000 astop;adone sign "84" name=sng,astart bbow,astart 84] ====Model: pole1m.rwxDescription[84]Action[create name 84, animate me . 1 1 999 astop;adone sign "84" name=sng,astart bbow,astart 84a]Model: pole1m.rwxDescription[84a]Action[create name 84a, animate me . 1 1 2000 astop;adone sign "84" name=sng,astart bob,astart 84b]Model: pole1m.rwxDescription[84b]Action[create name 84b, animate me . 1 1 3000 astop;adone sign "83" name=sng,astart bbow,astart 83] ====Model: pole1m.rwxDescription[83]Action[create name 83, animate me . 1 1 999 astop;adone sign "83" name=sng,astart bbow,astart 83a]Model: pole1m.rwxDescription[83a]Action[create name 83a, animate me . 1 1 2000 astop;adone sign "83" name=sng,astart bob,astart 83b]Model: pole1m.rwxDescription[83b]Action[create name 83b, animate me . 1 1 3000 astop;adone sign "82" name=sng,astart bbow,astart 82] ====Model: pole1m.rwxDescription[82]Action[create name 82, animate me . 1 1 999 astop;adone sign "82" name=sng,astart bbow,astart 82a]Model: pole1m.rwxDescription[82a]Action[create name 82a, animate me . 1 1 2000 astop;adone sign "82" name=sng,astart bob,astart 82b]Model: pole1m.rwxDescription[82b]Action[create name 82b, animate me . 1 1 3000 astop;adone sign "81" name=sng,astart bbow,astart 81] ====Model: pole1m.rwxDescription[81]Action[create name 81, animate me . 1 1 999 astop;adone sign "81" name=sng,astart bbow,astart 81a]Model: pole1m.rwxDescription[81a]Action[create name 81a, animate me . 1 1 2000 astop;adone sign "81" name=sng,astart bob,astart 81b]Model: pole1m.rwxDescription[81b]Action[create name 81b, animate me . 1 1 3000 astop;adone sign "80" name=sng,astart bbow,astart 80] ====Model: pole1m.rwxDescription[80]Action[create name 80, animate me . 1 1 999 astop;adone sign "80" name=sng,astart bbow,astart 80a]Model: pole1m.rwxDescription[80a]Action[create name 80a, animate me . 1 1 2000 astop;adone sign "80" name=sng,astart bob,astart 80b]Model: pole1m.rwxDescription[80b]Action[create name 80b, animate me . 1 1 3000 astop;adone sign "79" name=sng,astart bbow,astart 79] ====Model: pole1m.rwxDescription[79]Action[create name 79, animate me . 1 1 999 astop;adone sign "79" name=sng,astart bbow,astart 79a]Model: pole1m.rwxDescription[79a]Action[create name 79a, animate me . 1 1 2000 astop;adone sign "79" name=sng,astart bob,astart 79b]Model: pole1m.rwxDescription[79b]Action[create name 79b, animate me . 1 1 3000 astop;adone sign "78" name=sng,astart bbow,astart 78] ====Model: pole1m.rwxDescription[78]Action[create name 78, animate me . 1 1 999 astop;adone sign "78" name=sng,astart bbow,astart 78a]Model: pole1m.rwxDescription[78a]Action[create name 78a, animate me . 1 1 2000 astop;adone sign "78" name=sng,astart bob,astart 78b]Model: pole1m.rwxDescription[78b]Action[create name 78b, animate me . 1 1 3000 astop;adone sign "77" name=sng,astart bbow,astart 77] ====Model: pole1m.rwxDescription[77]Action[create name 77, animate me . 1 1 999 astop;adone sign "77" name=sng,astart bbow,astart 77a]Model: pole1m.rwxDescription[77a]Action[create name 77a, animate me . 1 1 2000 astop;adone sign "77" name=sng,astart bob,astart 77b]Model: pole1m.rwxDescription[77b]Action[create name 77b, animate me . 1 1 3000 astop;adone sign "76" name=sng,astart bbow,astart 76] ====Model: pole1m.rwxDescription[76]Action[create name 76, animate me . 1 1 999 astop;adone sign "76" name=sng,astart bbow,astart 76a]Model: pole1m.rwxDescription[76a]Action[create name 76a, animate me . 1 1 2000 astop;adone sign "76" name=sng,astart bob,astart 76b]Model: pole1m.rwxDescription[76b]Action[create name 76b, animate me . 1 1 3000 astop;adone sign "75" name=sng,astart bbow,astart 75] ====Model: pole1m.rwxDescription[75]Action[create name 75, animate me . 1 1 999 astop;adone sign "75" name=sng,astart bbow,astart 75a]Model: pole1m.rwxDescription[75a]Action[create name 75a, animate me . 1 1 2000 astop;adone sign "75" name=sng,astart bob,astart 75b]Model: pole1m.rwxDescription[75b]Action[create name 75b, animate me . 1 1 3000 astop;adone sign "74" name=sng,astart bbow,astart 74] ====Model: pole1m.rwxDescription[74]Action[create name 74, animate me . 1 1 999 astop;adone sign "74" name=sng,astart bbow,astart 74a]Model: pole1m.rwxDescription[74a]Action[create name 74a, animate me . 1 1 2000 astop;adone sign "74" name=sng,astart bob,astart 74b]Model: pole1m.rwxDescription[74b]Action[create name 74b, animate me . 1 1 3000 astop;adone sign "73" name=sng,astart bbow,astart 73] ====Model: pole1m.rwxDescription[73]Action[create name 73, animate me . 1 1 999 astop;adone sign "73" name=sng,astart bbow,astart 73a]Model: pole1m.rwxDescription[73a]Action[create name 73a, animate me . 1 1 2000 astop;adone sign "73" name=sng,astart bob,astart 73b]Model: pole1m.rwxDescription[73b]Action[create name 73b, animate me . 1 1 3000 astop;adone sign "72" name=sng,astart bbow,astart 72] ====Model: pole1m.rwxDescription[72]Action[create name 72, animate me . 1 1 999 astop;adone sign "72" name=sng,astart bbow,astart 72a]Model: pole1m.rwxDescription[72a]Action[create name 72a, animate me . 1 1 2000 astop;adone sign "72" name=sng,astart bob,astart 72b]Model: pole1m.rwxDescription[72b]Action[create name 72b, animate me . 1 1 3000 astop;adone sign "71" name=sng,astart bbow,astart 71] ====Model: pole1m.rwxDescription[71]Action[create name 71, animate me . 1 1 999 astop;adone sign "71" name=sng,astart bbow,astart 71a]Model: pole1m.rwxDescription[71a]Action[create name 71a, animate me . 1 1 2000 astop;adone sign "71" name=sng,astart bob,astart 71b]Model: pole1m.rwxDescription[71b]Action[create name 71b, animate me . 1 1 3000 astop;adone sign "70" name=sng,astart bbow,astart 70] ====Model: pole1m.rwxDescription[70]Action[create name 70, animate me . 1 1 999 astop;adone sign "70" name=sng,astart bbow,astart 70a]Model: pole1m.rwxDescription[70a]Action[create name 70a, animate me . 1 1 2000 astop;adone sign "70" name=sng,astart bob,astart 70b]Model: pole1m.rwxDescription[70b]Action[create name 70b, animate me . 1 1 3000 astop;adone sign "69" name=sng,astart bbow,astart 69] ====Model: pole1m.rwxDescription[69]Action[create name 69, animate me . 1 1 999 astop;adone sign "69" name=sng,astart bbow,astart 69a]Model: pole1m.rwxDescription[69a]Action[create name 69a, animate me . 1 1 2000 astop;adone sign "69" name=sng,astart bob,astart 69b]Model: pole1m.rwxDescription[69b]Action[create name 69b, animate me . 1 1 3000 astop;adone sign "68" name=sng,astart bbow,astart 68] ====Model: pole1m.rwxDescription[68]Action[create name 68, animate me . 1 1 999 astop;adone sign "68" name=sng,astart bbow,astart 68a]Model: pole1m.rwxDescription[68a]Action[create name 68a, animate me . 1 1 2000 astop;adone sign "68" name=sng,astart bob,astart 68b]Model: pole1m.rwxDescription[68b]Action[create name 68b, animate me . 1 1 3000 astop;adone sign "67" name=sng,astart bbow,astart 67] ====Model: pole1m.rwxDescription[67]Action[create name 67, animate me . 1 1 999 astop;adone sign "67" name=sng,astart bbow,astart 67a]Model: pole1m.rwxDescription[67a]Action[create name 67a, animate me . 1 1 2000 astop;adone sign "67" name=sng,astart bob,astart 67b]Model: pole1m.rwxDescription[67b]Action[create name 67b, animate me . 1 1 3000 astop;adone sign "66" name=sng,astart bbow,astart 66] ====Model: pole1m.rwxDescription[66]Action[create name 66, animate me . 1 1 999 astop;adone sign "66" name=sng,astart bbow,astart 66a]Model: pole1m.rwxDescription[66a]Action[create name 66a, animate me . 1 1 2000 astop;adone sign "66" name=sng,astart bob,astart 66b]Model: pole1m.rwxDescription[66b]Action[create name 66b, animate me . 1 1 3000 astop;adone sign "65" name=sng,astart bbow,astart 65] ====Model: pole1m.rwxDescription[65]Action[create name 65, animate me . 1 1 999 astop;adone sign "65" name=sng,astart bbow,astart 65a]Model: pole1m.rwxDescription[65a]Action[create name 65a, animate me . 1 1 2000 astop;adone sign "65" name=sng,astart bob,astart 65b]Model: pole1m.rwxDescription[65b]Action[create name 65b, animate me . 1 1 3000 astop;adone sign "64" name=sng,astart bbow,astart 64] ====Model: pole1m.rwxDescription[64]Action[create name 64, animate me . 1 1 999 astop;adone sign "64" name=sng,astart bbow,astart 64a]Model: pole1m.rwxDescription[64a]Action[create name 64a, animate me . 1 1 2000 astop;adone sign "64" name=sng,astart bob,astart 64b]Model: pole1m.rwxDescription[64b]Action[create name 64b, animate me . 1 1 3000 astop;adone sign "63" name=sng,astart bbow,astart 63] ====Model: pole1m.rwxDescription[63]Action[create name 63, animate me . 1 1 999 astop;adone sign "63" name=sng,astart bbow,astart 63a]Model: pole1m.rwxDescription[63a]Action[create name 63a, animate me . 1 1 2000 astop;adone sign "63" name=sng,astart bob,astart 63b]Model: pole1m.rwxDescription[63b]Action[create name 63b, animate me . 1 1 3000 astop;adone sign "62" name=sng,astart bbow,astart 62] ====Model: pole1m.rwxDescription[62]Action[create name 62, animate me . 1 1 999 astop;adone sign "62" name=sng,astart bbow,astart 62a]Model: pole1m.rwxDescription[62a]Action[create name 62a, animate me . 1 1 2000 astop;adone sign "62" name=sng,astart bob,astart 62b]Model: pole1m.rwxDescription[62b]Action[create name 62b, animate me . 1 1 3000 astop;adone sign "61" name=sng,astart bbow,astart 61] ====Model: pole1m.rwxDescription[61]Action[create name 61, animate me . 1 1 999 astop;adone sign "61" name=sng,astart bbow,astart 61a]Model: pole1m.rwxDescription[61a]Action[create name 61a, animate me . 1 1 2000 astop;adone sign "61" name=sng,astart bob,astart 61b]Model: pole1m.rwxDescription[61b]Action[create name 61b, animate me . 1 1 3000 astop;adone sign "60" name=sng,astart bbow,astart 60] ====Model: pole1m.rwxDescription[60]Action[create name 60, animate me . 1 1 999 astop;adone sign "60" name=sng,astart bbow,astart 60a]Model: pole1m.rwxDescription[60a]Action[create name 60a, animate me . 1 1 2000 astop;adone sign "60" name=sng,astart bob,astart 60b]Model: pole1m.rwxDescription[60b]Action[create name 60b, animate me . 1 1 3000 astop;adone sign "59" name=sng,astart bbow,astart 59] ====Model: pole1m.rwxDescription[59]Action[create name 59, animate me . 1 1 999 astop;adone sign "59" name=sng,astart bbow,astart 59a]Model: pole1m.rwxDescription[59a]Action[create name 59a, animate me . 1 1 2000 astop;adone sign "59" name=sng,astart bob,astart 59b]Model: pole1m.rwxDescription[59b]Action[create name 59b, animate me . 1 1 3000 astop;adone sign "58" name=sng,astart bbow,astart 58] ====Model: pole1m.rwxDescription[58]Action[create name 58, animate me . 1 1 999 astop;adone sign "58" name=sng,astart bbow,astart 58a]Model: pole1m.rwxDescription[58a]Action[create name 58a, animate me . 1 1 2000 astop;adone sign "58" name=sng,astart bob,astart 58b]Model: pole1m.rwxDescription[58b]Action[create name 58b, animate me . 1 1 3000 astop;adone sign "57" name=sng,astart bbow,astart 57] ====Model: pole1m.rwxDescription[57]Action[create name 57, animate me . 1 1 999 astop;adone sign "57" name=sng,astart bbow,astart 57a]Model: pole1m.rwxDescription[57a]Action[create name 57a, animate me . 1 1 2000 astop;adone sign "57" name=sng,astart bob,astart 57b]Model: pole1m.rwxDescription[57b]Action[create name 57b, animate me . 1 1 3000 astop;adone sign "56" name=sng,astart bbow,astart 56] ====Model: pole1m.rwxDescription[56]Action[create name 56, animate me . 1 1 999 astop;adone sign "56" name=sng,astart bbow,astart 56a]Model: pole1m.rwxDescription[56a]Action[create name 56a, animate me . 1 1 2000 astop;adone sign "56" name=sng,astart bob,astart 56b]Model: pole1m.rwxDescription[56b]Action[create name 56b, animate me . 1 1 3000 astop;adone sign "55" name=sng,astart bbow,astart 55] ====Model: pole1m.rwxDescription[55]Action[create name 55, animate me . 1 1 999 astop;adone sign "55" name=sng,astart bbow,astart 55a]Model: pole1m.rwxDescription[55a]Action[create name 55a, animate me . 1 1 2000 astop;adone sign "55" name=sng,astart bob,astart 55b]Model: pole1m.rwxDescription[55b]Action[create name 55b, animate me . 1 1 3000 astop;adone sign "54" name=sng,astart bbow,astart 54] ====Model: pole1m.rwxDescription[54]Action[create name 54, animate me . 1 1 999 astop;adone sign "54" name=sng,astart bbow,astart 54a]Model: pole1m.rwxDescription[54a]Action[create name 54a, animate me . 1 1 2000 astop;adone sign "54" name=sng,astart bob,astart 54b]Model: pole1m.rwxDescription[54b]Action[create name 54b, animate me . 1 1 3000 astop;adone sign "53" name=sng,astart bbow,astart 53] ====Model: pole1m.rwxDescription[53]Action[create name 53, animate me . 1 1 999 astop;adone sign "53" name=sng,astart bbow,astart 53a]Model: pole1m.rwxDescription[53a]Action[create name 53a, animate me . 1 1 2000 astop;adone sign "53" name=sng,astart bob,astart 53b]Model: pole1m.rwxDescription[53b]Action[create name 53b, animate me . 1 1 3000 astop;adone sign "52" name=sng,astart bbow,astart 52] ====Model: pole1m.rwxDescription[52]Action[create name 52, animate me . 1 1 999 astop;adone sign "52" name=sng,astart bbow,astart 52a]Model: pole1m.rwxDescription[52a]Action[create name 52a, animate me . 1 1 2000 astop;adone sign "52" name=sng,astart bob,astart 52b]Model: pole1m.rwxDescription[52b]Action[create name 52b, animate me . 1 1 3000 astop;adone sign "51" name=sng,astart bbow,astart 51] ====Model: pole1m.rwxDescription[51]Action[create name 51, animate me . 1 1 999 astop;adone sign "51" name=sng,astart bbow,astart 51a]Model: pole1m.rwxDescription[51a]Action[create name 51a, animate me . 1 1 2000 astop;adone sign "51" name=sng,astart bob,astart 51b]Model: pole1m.rwxDescription[51b]Action[create name 51b, animate me . 1 1 3000 astop;adone sign "50" name=sng,astart bbow,astart 50] ====Model: pole1m.rwxDescription[50]Action[create name 50, animate me . 1 1 999 astop;adone sign "50" name=sng,astart bbow,astart 50a]Model: pole1m.rwxDescription[50a]Action[create name 50a, animate me . 1 1 2000 astop;adone sign "50" name=sng,astart bob,astart 50b]Model: pole1m.rwxDescription[50b]Action[create name 50b, animate me . 1 1 3000 astop;adone sign "49" name=sng,astart bbow,astart 49] ====Model: pole1m.rwxDescription[49]Action[create name 49, animate me . 1 1 999 astop;adone sign "49" name=sng,astart bbow,astart 49a]Model: pole1m.rwxDescription[49a]Action[create name 49a, animate me . 1 1 2000 astop;adone sign "49" name=sng,astart bob,astart 49b]Model: pole1m.rwxDescription[49b]Action[create name 49b, animate me . 1 1 3000 astop;adone sign "48" name=sng,astart bbow,astart 48] ====Model: pole1m.rwxDescription[48]Action[create name 48, animate me . 1 1 999 astop;adone sign "48" name=sng,astart bbow,astart 48a]Model: pole1m.rwxDescription[48a]Action[create name 48a, animate me . 1 1 2000 astop;adone sign "48" name=sng,astart bob,astart 48b]Model: pole1m.rwxDescription[48b]Action[create name 48b, animate me . 1 1 3000 astop;adone sign "47" name=sng,astart bbow,astart 47] ====Model: pole1m.rwxDescription[47]Action[create name 47, animate me . 1 1 999 astop;adone sign "47" name=sng,astart bbow,astart 47a]Model: pole1m.rwxDescription[47a]Action[create name 47a, animate me . 1 1 2000 astop;adone sign "47" name=sng,astart bob,astart 47b]Model: pole1m.rwxDescription[47b]Action[create name 47b, animate me . 1 1 3000 astop;adone sign "46" name=sng,astart bbow,astart 46] ====Model: pole1m.rwxDescription[46]Action[create name 46, animate me . 1 1 999 astop;adone sign "46" name=sng,astart bbow,astart 46a]Model: pole1m.rwxDescription[46a]Action[create name 46a, animate me . 1 1 2000 astop;adone sign "46" name=sng,astart bob,astart 46b]Model: pole1m.rwxDescription[46b]Action[create name 46b, animate me . 1 1 3000 astop;adone sign "45" name=sng,astart bbow,astart 45] ====Model: pole1m.rwxDescription[45]Action[create name 45, animate me . 1 1 999 astop;adone sign "45" name=sng,astart bbow,astart 45a]Model: pole1m.rwxDescription[45a]Action[create name 45a, animate me . 1 1 2000 astop;adone sign "45" name=sng,astart bob,astart 45b]Model: pole1m.rwxDescription[45b]Action[create name 45b, animate me . 1 1 3000 astop;adone sign "44" name=sng,astart bbow,astart 44] ====Model: pole1m.rwxDescription[44]Action[create name 44, animate me . 1 1 999 astop;adone sign "44" name=sng,astart bbow,astart 44a]Model: pole1m.rwxDescription[44a]Action[create name 44a, animate me . 1 1 2000 astop;adone sign "44" name=sng,astart bob,astart 44b]Model: pole1m.rwxDescription[44b]Action[create name 44b, animate me . 1 1 3000 astop;adone sign "43" name=sng,astart bbow,astart 43] ====Model: pole1m.rwxDescription[43]Action[create name 43, animate me . 1 1 999 astop;adone sign "43" name=sng,astart bbow,astart 43a]Model: pole1m.rwxDescription[43a]Action[create name 43a, animate me . 1 1 2000 astop;adone sign "43" name=sng,astart bob,astart 43b]Model: pole1m.rwxDescription[43b]Action[create name 43b, animate me . 1 1 3000 astop;adone sign "42" name=sng,astart bbow,astart 42] ====Model: pole1m.rwxDescription[42]Action[create name 42, animate me . 1 1 999 astop;adone sign "42" name=sng,astart bbow,astart 42a]Model: pole1m.rwxDescription[42a]Action[create name 42a, animate me . 1 1 2000 astop;adone sign "42" name=sng,astart bob,astart 42b]Model: pole1m.rwxDescription[42b]Action[create name 42b, animate me . 1 1 3000 astop;adone sign "41" name=sng,astart bbow,astart 41] ====Model: pole1m.rwxDescription[41]Action[create name 41, animate me . 1 1 999 astop;adone sign "41" name=sng,astart bbow,astart 41a]Model: pole1m.rwxDescription[41a]Action[create name 41a, animate me . 1 1 2000 astop;adone sign "41" name=sng,astart bob,astart 41b]Model: pole1m.rwxDescription[41b]Action[create name 41b, animate me . 1 1 3000 astop;adone sign "40" name=sng,astart bbow,astart 40] ====Model: pole1m.rwxDescription[40]Action[create name 40, animate me . 1 1 999 astop;adone sign "40" name=sng,astart bbow,astart 40a]Model: pole1m.rwxDescription[40a]Action[create name 40a, animate me . 1 1 2000 astop;adone sign "40" name=sng,astart bob,astart 40b]Model: pole1m.rwxDescription[40b]Action[create name 40b, animate me . 1 1 3000 astop;adone sign "39" name=sng,astart bbow,astart 39] ====Model: pole1m.rwxDescription[39]Action[create name 39, animate me . 1 1 999 astop;adone sign "39" name=sng,astart bbow,astart 39a]Model: pole1m.rwxDescription[39a]Action[create name 39a, animate me . 1 1 2000 astop;adone sign "39" name=sng,astart bob,astart 39b]Model: pole1m.rwxDescription[39b]Action[create name 39b, animate me . 1 1 3000 astop;adone sign "38" name=sng,astart bbow,astart 38] ====Model: pole1m.rwxDescription[38]Action[create name 38, animate me . 1 1 999 astop;adone sign "38" name=sng,astart bbow,astart 38a]Model: pole1m.rwxDescription[38a]Action[create name 38a, animate me . 1 1 2000 astop;adone sign "38" name=sng,astart bob,astart 38b]Model: pole1m.rwxDescription[38b]Action[create name 38b, animate me . 1 1 3000 astop;adone sign "37" name=sng,astart bbow,astart 37] ====Model: pole1m.rwxDescription[37]Action[create name 37, animate me . 1 1 999 astop;adone sign "37" name=sng,astart bbow,astart 37a]Model: pole1m.rwxDescription[37a]Action[create name 37a, animate me . 1 1 2000 astop;adone sign "37" name=sng,astart bob,astart 37b]Model: pole1m.rwxDescription[37b]Action[create name 37b, animate me . 1 1 3000 astop;adone sign "36" name=sng,astart bbow,astart 36] ====Model: pole1m.rwxDescription[36]Action[create name 36, animate me . 1 1 999 astop;adone sign "36" name=sng,astart bbow,astart 36a]Model: pole1m.rwxDescription[36a]Action[create name 36a, animate me . 1 1 2000 astop;adone sign "36" name=sng,astart bob,astart 36b]Model: pole1m.rwxDescription[36b]Action[create name 36b, animate me . 1 1 3000 astop;adone sign "35" name=sng,astart bbow,astart 35] ====Model: pole1m.rwxDescription[35]Action[create name 35, animate me . 1 1 999 astop;adone sign "35" name=sng,astart bbow,astart 35a]Model: pole1m.rwxDescription[35a]Action[create name 35a, animate me . 1 1 2000 astop;adone sign "35" name=sng,astart bob,astart 35b]Model: pole1m.rwxDescription[35b]Action[create name 35b, animate me . 1 1 3000 astop;adone sign "34" name=sng,astart bbow,astart 34] ====Model: pole1m.rwxDescription[34]Action[create name 34, animate me . 1 1 999 astop;adone sign "34" name=sng,astart bbow,astart 34a]Model: pole1m.rwxDescription[34a]Action[create name 34a, animate me . 1 1 2000 astop;adone sign "34" name=sng,astart bob,astart 34b]Model: pole1m.rwxDescription[34b]Action[create name 34b, animate me . 1 1 3000 astop;adone sign "33" name=sng,astart bbow,astart 33] ====Model: pole1m.rwxDescription[33]Action[create name 33, animate me . 1 1 999 astop;adone sign "33" name=sng,astart bbow,astart 33a]Model: pole1m.rwxDescription[33a]Action[create name 33a, animate me . 1 1 2000 astop;adone sign "33" name=sng,astart bob,astart 33b]Model: pole1m.rwxDescription[33b]Action[create name 33b, animate me . 1 1 3000 astop;adone sign "32" name=sng,astart bbow,astart 32] ====Model: pole1m.rwxDescription[32]Action[create name 32, animate me . 1 1 999 astop;adone sign "32" name=sng,astart bbow,astart 32a]Model: pole1m.rwxDescription[32a]Action[create name 32a, animate me . 1 1 2000 astop;adone sign "32" name=sng,astart bob,astart 32b]Model: pole1m.rwxDescription[32b]Action[create name 32b, animate me . 1 1 3000 astop;adone sign "31" name=sng,astart bbow,astart 31] ====Model: pole1m.rwxDescription[31]Action[create name 31, animate me . 1 1 999 astop;adone sign "31" name=sng,astart bbow,astart 31a]Model: pole1m.rwxDescription[31a]Action[create name 31a, animate me . 1 1 2000 astop;adone sign "31" name=sng,astart bob,astart 31b]Model: pole1m.rwxDescription[31b]Action[create name 31b, animate me . 1 1 3000 astop;adone sign "30" name=sng,astart bbow,astart 30] ====Model: pole1m.rwxDescription[30]Action[create name 30, animate me . 1 1 999 astop;adone sign "30" name=sng,astart bbow,astart 30a]Model: pole1m.rwxDescription[30a]Action[create name 30a, animate me . 1 1 2000 astop;adone sign "30" name=sng,astart bob,astart 30b]Model: pole1m.rwxDescription[30b]Action[create name 30b, animate me . 1 1 3000 astop;adone sign "29" name=sng,astart bbow,astart 29] ====Model: pole1m.rwxDescription[29]Action[create name 29, animate me . 1 1 999 astop;adone sign "29" name=sng,astart bbow,astart 29a]Model: pole1m.rwxDescription[29a]Action[create name 29a, animate me . 1 1 2000 astop;adone sign "29" name=sng,astart bob,astart 29b]Model: pole1m.rwxDescription[29b]Action[create name 29b, animate me . 1 1 3000 astop;adone sign "28" name=sng,astart bbow,astart 28] ====Model: pole1m.rwxDescription[28]Action[create name 28, animate me . 1 1 999 astop;adone sign "28" name=sng,astart bbow,astart 28a]Model: pole1m.rwxDescription[28a]Action[create name 28a, animate me . 1 1 2000 astop;adone sign "28" name=sng,astart bob,astart 28b]Model: pole1m.rwxDescription[28b]Action[create name 28b, animate me . 1 1 3000 astop;adone sign "27" name=sng,astart bbow,astart 27] ====Model: pole1m.rwxDescription[27]Action[create name 27, animate me . 1 1 999 astop;adone sign "27" name=sng,astart bbow,astart 27a]Model: pole1m.rwxDescription[27a]Action[create name 27a, animate me . 1 1 2000 astop;adone sign "27" name=sng,astart bob,astart 27b]Model: pole1m.rwxDescription[27b]Action[create name 27b, animate me . 1 1 3000 astop;adone sign "26" name=sng,astart bbow,astart 26] ====Model: pole1m.rwxDescription[26]Action[create name 26, animate me . 1 1 999 astop;adone sign "26" name=sng,astart bbow,astart 26a]Model: pole1m.rwxDescription[26a]Action[create name 26a, animate me . 1 1 2000 astop;adone sign "26" name=sng,astart bob,astart 26b]Model: pole1m.rwxDescription[26b]Action[create name 26b, animate me . 1 1 3000 astop;adone sign "25" name=sng,astart bbow,astart 25] ====Model: pole1m.rwxDescription[25]Action[create name 25, animate me . 1 1 999 astop;adone sign "25" name=sng,astart bbow,astart 25a]Model: pole1m.rwxDescription[25a]Action[create name 25a, animate me . 1 1 2000 astop;adone sign "25" name=sng,astart bob,astart 25b]Model: pole1m.rwxDescription[25b]Action[create name 25b, animate me . 1 1 3000 astop;adone sign "24" name=sng,astart bbow,astart 24] ====Model: pole1m.rwxDescription[24]Action[create name 24, animate me . 1 1 999 astop;adone sign "24" name=sng,astart bbow,astart 24a]Model: pole1m.rwxDescription[24a]Action[create name 24a, animate me . 1 1 2000 astop;adone sign "24" name=sng,astart bob,astart 24b]Model: pole1m.rwxDescription[24b]Action[create name 24b, animate me . 1 1 3000 astop;adone sign "23" name=sng,astart bbow,astart 23] ====Model: pole1m.rwxDescription[23]Action[create name 23, animate me . 1 1 999 astop;adone sign "23" name=sng,astart bbow,astart 23a]Model: pole1m.rwxDescription[23a]Action[create name 23a, animate me . 1 1 2000 astop;adone sign "23" name=sng,astart bob,astart 23b]Model: pole1m.rwxDescription[23b]Action[create name 23b, animate me . 1 1 3000 astop;adone sign "22" name=sng,astart bbow,astart 22] ====Model: pole1m.rwxDescription[22]Action[create name 22, animate me . 1 1 999 astop;adone sign "22" name=sng,astart bbow,astart 22a]Model: pole1m.rwxDescription[22a]Action[create name 22a, animate me . 1 1 2000 astop;adone sign "22" name=sng,astart bob,astart 22b]Model: pole1m.rwxDescription[22b]Action[create name 22b, animate me . 1 1 3000 astop;adone sign "21" name=sng,astart bbow,astart 21] ====Model: pole1m.rwxDescription[21]Action[create name 21, animate me . 1 1 999 astop;adone sign "21" name=sng,astart bbow,astart 21a]Model: pole1m.rwxDescription[21a]Action[create name 21a, animate me . 1 1 2000 astop;adone sign "21" name=sng,astart bob,astart 21b]Model: pole1m.rwxDescription[21b]Action[create name 21b, animate me . 1 1 3000 astop;adone sign "20" name=sng,astart bbow,astart 20] ====Model: pole1m.rwxDescription[20]Action[create name 20, animate me . 1 1 999 astop;adone sign "20" name=sng,astart bbow,astart 20a]Model: pole1m.rwxDescription[20a]Action[create name 20a, animate me . 1 1 2000 astop;adone sign "20" name=sng,astart bob,astart 20b]Model: pole1m.rwxDescription[20b]Action[create name 20b, animate me . 1 1 3000 astop;adone sign "19" name=sng,astart bbow,astart 19] ====Model: pole1m.rwxDescription[19]Action[create name 19, animate me . 1 1 999 astop;adone sign "19" name=sng,astart bbow,astart 19a]Model: pole1m.rwxDescription[19a]Action[create name 19a, animate me . 1 1 2000 astop;adone sign "19" name=sng,astart bob,astart 19b]Model: pole1m.rwxDescription[19b]Action[create name 19b, animate me . 1 1 3000 astop;adone sign "18" name=sng,astart bbow,astart 18] ====Model: pole1m.rwxDescription[18]Action[create name 18, animate me . 1 1 999 astop;adone sign "18" name=sng,astart bbow,astart 18a]Model: pole1m.rwxDescription[18a]Action[create name 18a, animate me . 1 1 2000 astop;adone sign "18" name=sng,astart bob,astart 18b]Model: pole1m.rwxDescription[18b]Action[create name 18b, animate me . 1 1 3000 astop;adone sign "17" name=sng,astart bbow,astart 17] ====Model: pole1m.rwxDescription[17]Action[create name 17, animate me . 1 1 999 astop;adone sign "17" name=sng,astart bbow,astart 17a]Model: pole1m.rwxDescription[17a]Action[create name 17a, animate me . 1 1 2000 astop;adone sign "17" name=sng,astart bob,astart 17b]Model: pole1m.rwxDescription[17b]Action[create name 17b, animate me . 1 1 3000 astop;adone sign "16" name=sng,astart bbow,astart 16] ====Model: pole1m.rwxDescription[16]Action[create name 16, animate me . 1 1 999 astop;adone sign "16" name=sng,astart bbow,astart 16a]Model: pole1m.rwxDescription[16a]Action[create name 16a, animate me . 1 1 2000 astop;adone sign "16" name=sng,astart bob,astart 16b]Model: pole1m.rwxDescription[16b]Action[create name 16b, animate me . 1 1 3000 astop;adone sign "15" name=sng,astart bbow,astart 15] ====Model: pole1m.rwxDescription[15]Action[create name 15, animate me . 1 1 999 astop;adone sign "15" name=sng,astart bbow,astart 15a]Model: pole1m.rwxDescription[15a]Action[create name 15a, animate me . 1 1 2000 astop;adone sign "15" name=sng,astart bob,astart 15b]Model: pole1m.rwxDescription[15b]Action[create name 15b, animate me . 1 1 3000 astop;adone sign "14" name=sng,astart bbow,astart 14] ====Model: pole1m.rwxDescription[14]Action[create name 14, animate me . 1 1 999 astop;adone sign "14" name=sng,astart bbow,astart 14a]Model: pole1m.rwxDescription[14a]Action[create name 14a, animate me . 1 1 2000 astop;adone sign "14" name=sng,astart bob,astart 14b]Model: pole1m.rwxDescription[14b]Action[create name 14b, animate me . 1 1 3000 astop;adone sign "13" name=sng,astart bbow,astart 13] ====Model: pole1m.rwxDescription[13]Action[create name 13, animate me . 1 1 999 astop;adone sign "13" name=sng,astart bbow,astart 13a]Model: pole1m.rwxDescription[13a]Action[create name 13a, animate me . 1 1 2000 astop;adone sign "13" name=sng,astart bob,astart 13b]Model: pole1m.rwxDescription[13b]Action[create name 13b, animate me . 1 1 3000 astop;adone sign "12" name=sng,astart bbow,astart 12] ====Model: pole1m.rwxDescription[12]Action[create name 12, animate me . 1 1 999 astop;adone sign "12" name=sng,astart bbow,astart 12a]Model: pole1m.rwxDescription[12a]Action[create name 12a, animate me . 1 1 2000 astop;adone sign "12" name=sng,astart bob,astart 12b]Model: pole1m.rwxDescription[12b]Action[create name 12b, animate me . 1 1 3000 astop;adone sign "11" name=sng,astart bbow,astart 11] ====Model: pole1m.rwxDescription[11]Action[create name 11, animate me . 1 1 999 astop;adone sign "11" name=sng,astart bbow,astart 11a]Model: pole1m.rwxDescription[11a]Action[create name 11a, animate me . 1 1 2000 astop;adone sign "11" name=sng,astart bob,astart 11b]Model: pole1m.rwxDescription[11b]Action[create name 11b, animate me . 1 1 3000 astop;adone sign "10" name=sng,astart bbow,astart 10] ====Model: pole1m.rwxDescription[10]Action[create name 10, animate me . 1 1 999 astop;adone sign "10" name=sng,astart bbow,astart 10a]Model: pole1m.rwxDescription[10a]Action[create name 10a, animate me . 1 1 2000 astop;adone sign "10" name=sng,astart bob,astart 10b]Model: pole1m.rwxDescription[10b]Action[create name 10b, animate me . 1 1 3000 astop;adone sign "9" name=sng,astart bbow,astart 9] ====Model: pole1m.rwxDescription[9]Action[create name 9, animate me . 1 1 999 astop;adone sign "9" name=sng,astart bbow,astart 9a]Model: pole1m.rwxDescription[9a]Action[create name 9a, animate me . 1 1 2000 astop;adone sign "9" name=sng,astart bob,astart 9b]Model: pole1m.rwxDescription[9b]Action[create name 9b, animate me . 1 1 3000 astop;adone sign "8" name=sng,astart bbow,astart 8] ====Model: pole1m.rwxDescription[8]Action[create name 8, animate me . 1 1 999 astop;adone sign "8" name=sng,astart bbow,astart 8a]Model: pole1m.rwxDescription[8a]Action[create name 8a, animate me . 1 1 2000 astop;adone sign "8" name=sng,astart bob,astart 8b]Model: pole1m.rwxDescription[8b]Action[create name 8b, animate me . 1 1 3000 astop;adone sign "7" name=sng,astart bbow,astart 7] ====Model: pole1m.rwxDescription[7]Action[create name 7, animate me . 1 1 999 astop;adone sign "7" name=sng,astart bbow,astart 7a]Model: pole1m.rwxDescription[7a]Action[create name 7a, animate me . 1 1 2000 astop;adone sign "7" name=sng,astart bob,astart 7b]Model: pole1m.rwxDescription[7b]Action[create name 7b, animate me . 1 1 3000 astop;adone sign "6" name=sng,astart bbow,astart 6] ====Model: pole1m.rwxDescription[6]Action[create name 6, animate me . 1 1 999 astop;adone sign "6" name=sng,astart bbow,astart 6a]Model: pole1m.rwxDescription[6a]Action[create name 6a, animate me . 1 1 2000 astop;adone sign "6" name=sng,astart bob,astart 6b]Model: pole1m.rwxDescription[6b]Action[create name 6b, animate me . 1 1 3000 astop;adone sign "5" name=sng,astart bbow,astart 5] ====Model: pole1m.rwxDescription[5]Action[create name 5, animate me . 1 1 999 astop;adone sign "5" name=sng,astart bbow,astart 5a]Model: pole1m.rwxDescription[5a]Action[create name 5a, animate me . 1 1 2000 astop;adone sign "5" name=sng,astart bob,astart 5b]Model: pole1m.rwxDescription[5b]Action[create name 5b, animate me . 1 1 3000 astop;adone sign "4" name=sng,astart bbow,astart 4] ====Model: pole1m.rwxDescription[4]Action[create name 4, animate me . 1 1 999 astop;adone sign "4" name=sng,astart bbow,astart 4a]Model: pole1m.rwxDescription[4a]Action[create name 4a, animate me . 1 1 2000 astop;adone sign "4" name=sng,astart bob,astart 4b]Model: pole1m.rwxDescription[4b]Action[create name 4b, animate me . 1 1 3000 astop;adone sign "3" name=sng,astart bbow,astart 3] ====Model: pole1m.rwxDescription[3]Action[create name 3, animate me . 1 1 999 astop;adone sign "3" name=sng,astart bbow,astart 3a]Model: pole1m.rwxDescription[3a]Action[create name 3a, animate me . 1 1 2000 astop;adone sign "3" name=sng,astart bob,astart 3b]Model: pole1m.rwxDescription[3b]Action[create name 3b, animate me . 1 1 3000 astop;adone sign "2" name=sng,astart bbow,astart 2] ====Model: pole1m.rwxDescription[2]Action[create name 2, animate me . 1 1 999 astop;adone sign "2" name=sng,astart bbow,astart 2a]Model: pole1m.rwxDescription[2a]Action[create name 2a, animate me . 1 1 2000 astop;adone sign "2" name=sng,astart bob,astart 2b]Model: pole1m.rwxDescription[2b]Action[create name 2b, animate me . 1 1 3000 astop;adone sign "1" name=sng,astart bbow,astart 1] ====Model: pole1m.rwxDescription[1]Action[create name 1, animate me . 1 1 999 astop;adone sign "1" name=sng,astart bbow,astart 1a]Model: pole1m.rwxDescription[1a]Action[create name 1a, animate me . 1 1 2000 astop;adone sign "1" name=sng,astart bob,astart 1b]Model: pole1m.rwxDescription[1b]Action[create name 1b, animate me . 1 1 3000 astop;adone sign "0" name=sng,astart bbow,astart 0] ====Model: pole1m.rwxDescription[0]Action[create name 0, animate me . 1 1 999 astop;adone astart end,astart end,astart 0a]Model: pole1m.rwxDescription[0a]Action[create name 0a, animate me . 1 1 2000 astop;adone astart bobw,astart 0b]Model: pole1m.rwxDescription[0b]Action[create name 0b, animate me . 1 1 2000 astop;adone astart end,astart 0c]Model: pole1m.rwxDescription[0c]Action[create name 0c, animate me . 1 1 2000 astop;adone astart end2,astart 0d]Model: pole1m.rwxDescription[0d]Action[create name 0d, animate me . 1 1 3000 astop;adone sign "99" name=sng,astart bob,astart 99] ====
RLS0812
Here are the LSL scripts for several of my casino games I wrote a long-long time ago.
The following is the original SL forum post ( spelling mistakes and all ) under my user name "Shippou Oud" .[quote]

Since the ban on advertising casino related items, I can no longer sell the items these were in, so I'm releasing the scripts here on the forums so folks can learn how certain items work.
My theorie on scripting, is keep it simple, and understandable. No need to over complicate it.[/quote]
[quote]1 prim slots This was a fun script to wright. Notice how I use numbers to make a symbol, and for each symbol is assigned a value, so when added up, the machine knows what is landed on, and if it is a winner or not. This also keeps track of payin, last player and total winnings. Also has a progressive jack pot. CODE
[/quote]list null= ["OK"];string name = "The Fruit Machine";string f1 = " banana ";string f2 = " cherry ";string f3 = " apple ";integer cha;integer f1a = 50;integer f2a = 60;integer f3a = 70;string LP;integer JP;integer ttpi;integer po;vector col = <0>;default{on_rez(integer x){ llResetScript();}state_entry(){llSetObjectName(name);cha = (integer) llFrand(999999998) + 1;llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);llSetPayPrice(PAY_HIDE, [10, PAY_HIDE, PAY_HIDE, PAY_HIDE]);JP = 1000;llSetText(name +" \n Last Player: " + LP + "\n Jack Pot $L" + (string) JP + "\n Total Pay Out $L" + (string) po,col,1);}touch_start(integer x){llInstantMessage(llDetectedKey(0),"Current Pay outs are 3 " + f1 + "$L" + (string) f1a + " , 3 " + f2 + "$L" + (string) f2a + " , 3 " + f3 + "$L" + (string) f3a + " . Only $L10 to play");if (llDetectedKey(0) == llGetOwner()){ llInstantMessage(llGetOwner(),"---- $L" + (string) ttpi);}}money(key play, integer mon){ttpi = ttpi + mon;JP = JP + 1;string w1;string w2;string w3;integer win1;integer win2;integer win3;integer a1 = (integer) llFrand(3) + 1;if (a1 == 1){w1 = f1;win1 = win1 + 1;}else if (a1 == 2){w1 = f2;win2 = win2 + 1;}else if (a1 == 3){w1 = f3;win3 = win3 + 1;}integer a2 = (integer) llFrand(3) + 1;if (a2 == 1){w2 = f1;win1 = win1 + 1;}else if (a2 == 2){w2 = f2;win2 = win2 + 1;}else if (a2 == 3){w2 = f3;win3 = win3 + 1;}integer a3 = (integer) llFrand(3) + 1;if (a3 == 1){w3 = f1;win1 = win1 + 1;}else if (a3 == 2){w3 = f2;win2 = win2 + 1;}else if (a3 == 3){w3 = f3;win3 = win3 + 1;}integer ww = (integer) llFrand(4) + 1;integer ww1 = (integer) llFrand(4) + 1;integer wmu = (integer) llFrand(25) + 1;integer wmu1 = (integer) llFrand(25) + 1;LP = llKey2Name(play);llInstantMessage(play,"Thank you " + LP + " . Good luck !");llDialog( play , " " + w1 + w2 + w3, null ,cha);if (ww == ww1){llDialog( play ,"You Won $L5", null ,cha);llGiveMoney(play,5);po = po + 5;}if (win1 == 3){llDialog( play ,"You Won $L" + (string) f1a, null ,cha);llGiveMoney(play, f1a);po = po + f1a;}else if (win2 == 3){llDialog( play ,"You Won $L" + (string) f2a, null ,cha);llGiveMoney(play, f2a);po = po + f2a;}else if (win3 == 3){llDialog( play ,"You Won $L" + (string) f3a, null ,cha);llGiveMoney(play, f3a);po = po + f3a;}integer Jack1 = (integer) llFrand(3000) + 1;integer Jack2 = (integer) llFrand(3000) + 1;{ if (Jack1 == Jack2) { llDialog( play ,"You Won The Jackpot of $L" + (string) JP, null ,cha);llGiveMoney(play, JP);po = po + JP;JP = 1000; }win1 = 0;win2 = 0;win3 = 0;llSetText(name +" \n Last Player: " + LP + "\n Jack Pot $L" + (string) JP + "\n Total Pay Out $L" + (string) po,col,1);}}run_time_permissions(integer perm){ if (PERMISSION_DEBIT & perm) { } else { llInstantMessage(llGetOwner(),"Sorry, you must click 'yes' to operate this. ");llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); }}}[quote] $L Picker This game is unique. I came up with the idea a while ago, and developed this as one of my first sucessfull games. It works liek this. pay from 1 to 10. that becomes your number the script randomly generates a number from 1 to 10..if it matched win 4x bet. if it is 1 off, win 2x bet. CODE
[/quote]integer ttp;integer payin;default{ on_rez(integer x) { llResetScript(); } state_entry() { llSetTimerEvent(1); llSetText("$L Picker \n Click for info \n Pay $L1 to $L10 to play" + "\n" + "Total Payout $L" + (string) ttp,<.5,1,1>,1); llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } touch_start(integer x) { if (llDetectedKey(0) == llGetOwner()) { llInstantMessage(llGetOwner(),"$L" + (string) payin + " has been bet."); } if (llDetectedKey(0) != llGetOwner()) { llInstantMessage(llDetectedKey(0),"This game is simple. Bet from $L1 to $L10 if the computer picks your bet you win 4x the amount. if the computer is off by 1, you win 2x bet. \n Lets say you bet $L5 and the computer randomly picks 5, you'll win $L20. Now lets say you bet $L8 and the computer picks 7, you win $L16. \n 10 is considered to be the number below below 1, and 1 the number above 10, so if you bet $L10 and the computer picks 1, you'll win $L20."); } } money(key giver, integer amount) { payin = payin + amount; if (amount > 10) { llInstantMessage(giver,"Sorry, but I can only bet up to $L10 at a time, here is $L" + (string) amount + " back. "); llGiveMoney(giver,amount); payin = payin - amount; return; } float Winnum = llFrand(10); integer W2 = (integer) Winnum + 1; integer w2x = amount * 2; integer w4x = amount * 4; llInstantMessage(giver,"You bet " + (string) amount + " !"); llInstantMessage(giver,"The computer picks " + (string) W2 + " !" + "\n "); if (amount == W2) { llGiveMoney(giver,amount * 4); llSay(0,"Won $L" + (string) w4x + " !"); ttp = ttp + w4x; } if (amount == W2 + 1) { llGiveMoney(giver,amount * 2); llSay(0,"Won $L" + (string) w2x + " !"); ttp = ttp + w2x; } if (amount == W2 - 1) { llGiveMoney(giver,amount * 2); llSay(0,"Won $L"+ (string) w2x + " !"); ttp = ttp + w2x; } if (W2 - 9 == amount) { llGiveMoney(giver,amount * 2); llSay(0,"Won $L" + (string) w2x + " !"); ttp = ttp + w2x; } if (W2 + 9 == amount) { llGiveMoney(giver,amount * 2); llSay(0,"Won $L" + (string) w2x + " !"); ttp = ttp + w2x; } } timer() { llSetText("$L Picker \n Click for info \n Pay $L1 to $L10 to play" + "\n" + "Total Payout $L" + (string) ttp,<.5,1,1>,1);}run_time_permissions(integer perm){ if (PERMISSION_DEBIT & perm) { } else { llInstantMessage(llGetOwner(),"Sorry, you must click 'yes' to operate this. ");llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); }} }[quote]Lucky Orb This script let the palyer to bet from 1 to 100. If the 2 numebrs from 1 to 3 matches that are generated, they win bet x 2. CODE
[/quote]integer pi;integer po;string wnnr;integer pyo;default{ on_rez(integer x) { llResetScript(); } state_entry() { pi = 0; po = 0; llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); llSetTextureAnim(SMOOTH | LOOP | ANIM_ON, ALL_SIDES,0,0,0,0,.25); llSetText("Double your $L \n Bet from $L1 to $L100 \n " + wnnr + " has won $L" + (string) pyo + " \n Total Payout $L" + (string) po,<0>,1); } touch_start(integer total_number) { if (llDetectedKey(0) == llGetOwner()) { llInstantMessage(llGetOwner(),"Total Pay In $L" + (string) pi); } } money(key player, integer mon) { if (mon > 100) { integer df = mon - 100; llGiveMoney(player,df); llInstantMessage(player,"Sorry that was too much, here is $L" + (string) df + " in change."); mon = 100; } pi = pi + mon; llInstantMessage(player,"Good Luck!"); integer wn1 = (integer) llFrand(3) + 1; integer wn2 = (integer) llFrand(3) + 1; if (wn1 == wn2) { pyo = mon * 2; llGiveMoney(player, pyo); llInstantMessage(player,"You Won $L" + (string) pyo); po = po + pyo; wnnr = llKey2Name(player); } llSetText("Double your $L \n Bet from $L1 to $L100 \n " + wnnr + " has won $L" + (string) pyo + " \n Total Payout $L" + (string) po,<0>,1); llInstantMessage(player,"Thank you for playing.");}run_time_permissions(integer perm){ if (PERMISSION_DEBIT & perm) { } else { llInstantMessage(llGetOwner(),"Sorry, you must click 'yes' to operate this. ");llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); }}}[quote]randon $L giver For this script, pay in 10-100, and get something back every time. The script picks a number , and determins the pay scale. 1.8 x bet is the max. CODE
[/quote]integer pi;integer po;string wnnr;integer pyo;default{ on_rez(integer x) { llResetScript(); } state_entry() { pi = 0; po = 0; llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); llSetTextureAnim(SMOOTH | LOOP | ANIM_ON, ALL_SIDES,0,0,0,0,.25); llSetText("Win Random $L \n Bet from $L10 to $L100 \n " + wnnr + " has won $L" + (string) pyo + " \n Total Payout $L" + (string) po,<.1,1,.5>,1); } touch_start(integer x) { if (llDetectedKey(0) == llGetOwner()) { llInstantMessage(llGetOwner(),"Total Pay In $L" + (string) pi); } } money(key player, integer mon) { if (mon > 100) { llInstantMessage(player,"Sorry this is too much, here is your refund"); llGiveMoney(player,mon); } else if (mon < 10) { llInstantMessage(player,"Sorry this is not enough. Please bet $L10 or more, here is your refund"); llGiveMoney(player,mon); } else { pi = pi + mon; llInstantMessage(player,"Good Luck"); integer wun = mon * 2 - 2; integer wun1 = (integer)llFrand(wun) + 1; llGiveMoney(player,wun1); wnnr = llKey2Name(player); pyo = wun1; po = po + wun1; llInstantMessage(player, "Congradulations, you won $L" + (string) wun1); llSetText("Win Random $L \n Bet from $L10 to $L100 \n " + wnnr + " has won $L" + (string) pyo + " \n Total Payout $L" + (string) po,<.1,1,.5>,1); llInstantMessage(player,"Thank you for playing.");}}run_time_permissions(integer perm){ if (PERMISSION_DEBIT & perm) { } else { llInstantMessage(llGetOwner(),"Sorry, you must click 'yes' to operate this. ");llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); }}}[quote] betting orbs this is one of my more feature laden gaming scripts. I put it to change the object name, due to the fact I made a lot of different dominations of orbs, and was getting them confused. Made it very eayy to tell which one was which. CODE
[/quote]integer p1 = 10;integer p2;string lpl;integer tpi;integer tpo;integer tpp;default{ on_rez(integer x) { llResetScript(); } state_entry() { p2 = p1 * 10; tpi = 0; tpo = 0; tpp = 0; lpl = ""; llSetObjectName("Betting Orb $L" + (string) p1); llSetText("Bet $L" + (string) p1+ " - Win $L" + (string) p2 + "\n Last Player: " + lpl,<1>,1); llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); llSetPayPrice(PAY_HIDE, [p1, PAY_HIDE, PAY_HIDE, PAY_HIDE]); }touch_start(integer x){ if (llDetectedKey(0) != llGetOwner()) { llInstantMessage(llDetectedKey(0),"Please pay $L" + (string) p1 + " to play. \n You can win $L" + (string) p2); } if (llDetectedKey(0) == llGetOwner()) { llInstantMessage(llGetOwner()," \n Total pay in - $L" + (string) tpi + "\n Total pay out - $L" + (string) tpo + " \n Total times played - " + (string) tpp); }}money(key pla, integer mon){ tpp = tpp + 1; tpi = tpi + mon; lpl = llKey2Name(pla); llInstantMessage(pla,"Good luck, " + lpl + "."); integer num1 = (integer) llFrand(14) + 1; integer num2 = (integer) llFrand(14) + 1; if (num1 == num2) { llInstantMessage(pla,"You won $L" + (string) p2 + " !"); llGiveMoney(pla,p2); tpo = tpo + p2; } llInstantMessage(pla,"Thank you for playing."); llSetText("Bet $L" + (string) p1+ " - Win $L" + (string) p2 + "\n Last Player: " + lpl,<1>,1);} run_time_permissions(integer perm){ if (PERMISSION_DEBIT & perm) { } else { llInstantMessage(llGetOwner(),"Sorry, you must click 'yes' to operate this. ");llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } }}
RLS0812
Here is the working code for a very basic Java game were you move an oval around the screen.
This is to demonstrate the basics of paint(), KeyListener, JFrame and JPanelimport java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JFrame;import javax.swing.JPanel;public class Main extends JPanel implements KeyListener{private int x = 5, y = 5; private int speed = 5;private Dimension dimension = new Dimension(500,400); public Main(){ setSize(dimension); setPreferredSize(dimension); setFocusable(true); addKeyListener(this); } @Override public void update (Graphics g){ paint(g); } public void paint(Graphics g){ g.setColor(Color.black); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(Color.white); g.fillOval(x,y,20,20); repaint(); } public static void main (String[] args){ Main game = new Main(); JFrame frame = new JFrame(); frame.setTitle("Game"); frame.add(game); frame.pack(); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } @Override public void keyPressed(KeyEvent e) { int c = e.getKeyCode(); if ( c == KeyEvent.VK_W){ y -= speed;} if ( c == KeyEvent.VK_S){ y += speed;} if ( c == KeyEvent.VK_A){ x -= speed;} if ( c == KeyEvent.VK_D){ x += speed;} } @Override public void keyReleased(KeyEvent e) {} @Override public void keyTyped(KeyEvent e) {}}
RLS0812
The period in the history of the United States that almost all the history books fails to chronicle is the political history before George Washington as elected president ( ironically he almost ended up as king ).
There were 8 men who carried the title "President Of The United States" before George Washington was ever elected.
This era started with the adoption of The Articles of Confederation in March 1, 1781

1: John Hanson - 1781 to 1782
2: Elias Boudinot - 1782 to 1783
3: Thomas Mifflin - 1783 to 1784
4: Richard Henry Lee - 1784 to 1785
5: John Hancock - 1785 to 1786
6: Nathaniel Gorham - 1786 to 1787
7: Arthur St. Clair - 1787 to 1788
8: Cyrus Griffin - 1788 to 1789

But wait - there is more ! The Articles of Confederation is considered the first constitution of the United States, however there were men before this time that carried the title of "President of the Continental Congress" that had some authority and acted at times as mediator at congressional meetings.
This era started with the adoption of the congressional Articles of Association

1: Peyton Randolph - 1774
2: Henry Middleton - 1774 to 1775
3: Peyton Randolph - 1775 ( second term )
4: John Hancock - 1775 to 1777 ( Declaration Of Independence - 1776 )
5: Henry Laurens - 1777 to 1778
6: John Jay - 1778 to 1779
7: Samuel Huntington - 1779 to 1781
8: Thomas McKean - 1781

Notes:
1: The American Revolutionary War ended in 1783, making Thomas Mifflin the first president of an independent United States
2: The United States Constitution was ratified in 1787, making Arthur St. Clair the first president under the new constitution and making Cyrus Griffin the only president ever elected by congress ( under the new constitution ).
Sign in to follow this