Author Topic: I wish I wish I was rich... Oh! and this stuff:  (Read 987 times)

  • No avatar
  • *
December 04, 2010, 11:07:30 am
Well, I have some ideas for RA, most were probably already mentioned, but I'm gonna write them down here anyway.

A note: I posted the ones closer to the top there, although they're the least likely to be added, being the hardest and longest modifications,
But I think they're the most important, if you add these, I could just CREATE the rest of the changes myself.
Farrrr lower, after the first suggestions, are far more normal ones.

1) The option of creating your own files:
A program that will popup a dialog box where you can enter a file name, and below it, it's contents, be it text, attachments, or both.
The text portion could be used for text, links(in-game ones), and code.
*(More will be explained about the 'code' part of this suggestion further down.)
File "format" decided by the extension part of it's name, to enable/disable actions doable to that file.

2) Code:
Two simple languages, one for web pages, the other for programs.
*(More about web pages further down.)
I'll dump the two plans right here, for both, to show simplicity:

Example web-page code:
Code: [Select]
<WebPage.Options>
Name="ExamplePage.zwf"
Format="zwf"
<WebPage.OnLoad>
Print 1 "This is an example page!"
Print 2 "ziv web format 1.0!"
The "Options" part is used to store options, by default, it must contain a name.
I added a format part in case someone decided to create his own gimmick for a browser, so he could have it check the format.
After the options part, comes events:
Code: [Select]
A) OnLoad - Triggers when the page loads.

B) OnClose - Triggers when the page is closed, or the client has disconnected, if it's a remote one.

C) OnClick - Triggers when a user has clicked an item, the item name is automatically placed in a variable called "item".
Only applies to buttons, images and links added by the user. Example:

Code:
<WebPage.OnClick>
If Target = "Button1" Then
*insert code here*
EndIf

*Note the VB format, again, simplicity is the goal.
(*More about how to set up the stuff on the page further down)

Default Variables:
Code: [Select]
A) IP - The connecting user's IP.

B) View - What the connecting user is viewing, either "Files", "Web" or "Logs".

C) Target - Explained previously.

D) Time
*Also include Time.SS Time.MM Time.HH

E) Date
*+ Date.DD Date.MM Date.YY

Commands:
Code: [Select]
A) Print n "text" - Prints "text" on the web browser, at line n.
*Include this: PrintLink "Target" "Text" - Same as above, to create a clickable link.

B) ^Variable = x - Creates a variable, the name is what goes after the "^", but custom variables start with a ^.
Example:

^Example = 3
^Example2 = "WooT!"

*If it's in between quotation marks, it's text, otherwise it's either numbers, or if it starts with a ^ it's a custom variable.
*Include option for mathematical operations, at least some basic ones, +-/*.

C) Roof ^Variable - Rounds the value in ^Variable upwards(to lose fractions).

D) Floor ^Variable - Same as Roof, but downwards.

E) Run "Program" "Arguments" - Executes "Program", if it's executable, otherwise does nothing.

F) GetR ^Variable "Program" "Arguments" - Executes "program", if it's executable, and sets ^Variable to whatever the program returns.
*If the program returns nothing, set ^Variable to 0, do the same if it's not executable.

G) GetE ^Variable "EditBox" - Sets ^Variable to the contents of "Editbox", if there are none, it's set to 0.

H) GetC ^Variable "CheckBox" - Sets ^Variable tot he state of "CheckBox", 0 for unchecked, 1 for checked.

I) Write "FileName" LineNumber "Text" - Obvious.

J) Read ^Variable "FileName" LineNumber - Reads the text in "FileName" at LineNumber into ^Variable.

K) Image x y z "FileName" - Places the  image "FileName" at co.ords x,y.
*The 'z' is either 0 for background or 1 for forground.

L) Button x y "ButtonName" - Places a button names "ButtonName" at x,y.

M) EditBox x y "EBName" - Same as above, but an EditBox.

N) CheckBox x y "CBName" - Same as above...

O) CL n - Clears line N of the web-page currently  opened.

P) Len ^Variable "String" - Sets ^Variable to the length of "String".

Q) Tokenize "String" - Sets the program's arguments to whatever's in "String", according to spaces.

*No loops, only recurtion, it'll make it easier to check if it creates a never-ending loop.
(Much easier on your coding as well)

Example "Program" Code:
Code: [Select]
<Program.Options>
Name="ExampleProgram"
Format="zef"
Version=1.0
<Program.OnStart>
Window 1 1 100 100 "ExampleProgram" "Example Program"
Print 1 "ExampleProgram" "This is an example program!"
Button 40 80 "Close"
<Program.OnClick>
If Target = "Close" Then
Return
EndIf

To include all of the web stuff, with some commands changed,
And the following stuff added:

Commands:
Code: [Select]
A) Print n "Window" "Text" - Prints "Text" in window "Window", at line n.
*Include this: PrintLink n "Window" "Target" "Text" - Same as above, to create a clickable link.

B) Window x y w h "WindowName" "Window Title" - Creates a window called "WindowName" at x,y with a w,h size, with the title "Window Title".

C) Connect "IP" - Connects to "IP".

D) Send "Text" - Sends "Text" over the active connection.

E) Recieve ^Variable - Recieves text over the active connection and inserts it in to ^Variable.

F) Beep - Sounds a 'beep' noise, like in mIRC.

G) Left ^Variable n "Text" - Places n characters/digits from "Text" into ^Variable, counting from the left.

H) Right ^Variable n "Text" - Same as above, but counting from the right.

I) Delay n - Creates a delay in the program where nothing is done, for n miliseconds.

J) SendFile "FileName" "IP" - Obvious.

K) Download "FileName" "IP" - Obvious.

L) Dir "DirPath" - Creates a new directory with the path(and name) "DirPath"

M) Move "FilePath" "NewPath" - Moves "FilePath" to "NewPath", if they exist, otherwise does nothing.

N) IsPath ^Variable "FilePath" - If "FilePath" exists(works for files and dirs), sets ^Variable to 1, otherwise 0.

O) SendRun "FileName" "Arguments" - Executes "FileName" with arguments "Arguments", on a remote connection(the one it's connected to right now).

P) SendRemove "FileName" - A remote version of the delete function.

Q) Remove "Path" - Removes "Path", wether it be a file, or a dir.

R) Disconnect "IP" - Disconnects from "IP".

S) Return ^Variable - Returns to the triggering program/webpage with whatever's in ^Variable, obviously closing this program.

T) CL n "WindowName" - Same as the web's CL, but window specific.

Events:
Code: [Select]
A) OnConnect - Triggers when the a connection has been established(even by a remote user).

B) OnDisconnect - Obvious.

C) OnStart - Triggers when the program is ran.

D) OnReviece - Triggers when there is data to be recieved via the connection(not a file).
This event intercepts remotely sent commands such as SendRun.

E) OnDownload - Triggers when a file has finished downloading.

F) OnUpload - Triggers when a file has finished uploading.

Default Variables:
Code: [Select]
A) WinName - The active window name.

B) Running processes should be listed in a file, I suggest PList.txt
The list is in this format:
Name TriggeredBy Size
*Remotely run stuff is "TriggeredBy" "Remote".

C) Arguments are stored in ArgN, with Arg0 being the number of arguments.
(*Arg1, Arg2, Arg3.....)

Edit:

I also suggest a program's size is determined by the number of commands and events in it, in some sort of multiplication system, to limit what the user can have it do, according to his hardware limitations.

For example, each command is 5MB, each event 20MB, and lets say the hardware enables 100MB total in the running processes? You get pretty limited, but if you're smart enough you can still do plenty with it, although you could get a lot more from better hardware, you could still do plenty with those 100MB.

That's it for coding.
It should enable some VERY interesting stuff to be built... and yes I have aLOTTTTT ion mind :D

3) A back button for the dialer

4) The option of using the keyboard with the dialer

5) History&bookmarks lists for the dialer

6) The option of renting the services of a remote "server"(NPC):
This option will allow the user to host files on a remote server, either just host them, or host a "website" with them.
Cost will varey according to the total file size hosted and the max.connections count.
To be a weekly payment.

Each user gets his own directory in that server, with it's own password.
I also suggest adding more then one of these.

---

There is, without a doubt, more to come!!!!
It's just that my brain only has a 128kB capacity, I have to dump some of these stuff before I have room for more.

*Edited - added two more stuff to the coding section (webpage area).

ziv.
« Last Edit: December 04, 2010, 09:50:03 pm by ziv »

  • *
December 04, 2010, 04:18:06 pm
Hey ziv.  Thanks for dumping your ideas here!  Some of these are very good.  We'll no doubt be discussing them within DWS  :).