Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
I'm thinking XSE and PokeScript's styles are very similar, and what I've called "PokeScript" is actually a hybrid of the two. What's XSE have that this variant doesn't?
Now that I look at the specific example you've given, the differences are minimal. XSE (as I usually see it posted here) just looks cleaner because it's lowercase. :\
I've seen other examples of PokeScript and PKSV on the boards, though, and those usually look quite a bit messier. Dollar signs, weird command names...
I agree with DavidJCobb's idea for the layout purely because I'm more used to that kind of style.
Though the colours - the orange in particular - tend to hurt my eyes. I'd suggest making ordinary commands (which are in blue) plain black, and then the text using the orange to become the blue. Though I guess then non-commands won't be noticeable...eh, idk. This looks great though, good luck (not that you need luck).
The inline thing is a good feature indeed. I'm fine with both layouts, but I wonder if you're going to include something like what XSE has on its friendly user interface; a built-in guide/command list and/or a text adjuster.
Also, maybe an x-code thing where it guesses which function you're going to do?
For example I type in "p" and xcode guesses that I'm going to do "printf", so it prints out in gray, "printf ("message");", and if I decide to keep it...
Something like that.
Spoiler:
How about making a loop thing?
I mean,
Code:
@for
for (variable = number, variableoperate, variable condition number)
loop statement
…
return '}
next
Code:
@for
setvar variable number
compare variable number
if1 condition @loop
jump @next
@loop
variableoperate
statement
compare variable number
if1 condition @loop
jump @next
@next
I prefer the C-style, but lowercased commands and keywords. Also, coming from a programming (Java) background and wanting to take up scripting, I like to see the print command: message.print("this is a message!"); or msgbox.print("this is a message!");. I'm not all that familiar with other scripting formats, but I find applymovement too lengthy of a command; how about reducing it to just move? If you want to move that player, then we use move(player, movement commands) or if any other NPC, we use move(var, commands) where var is the players number or whatever.. I'm just blabbering, lol.
The in-line feature is actually pretty great to implement.
Code:
#org @main
lock; faceplayer;
move(PLAYER, 0x1 0x2);
move(10, 0x1 0x2);
move(10, @movement);
waitmovement();
message.print("a message!", #6); // in-line
message.print(@msg, #6); // or without the hash-tag.
release; end;
#text @msg
= this is a message!
#raw @movement
= 0x1 0x2 0xFF
Something like this. Or not.
Also, the colors are fine except the orange; what about just simple dark gray or something close to black?
Also, how about a looping feature? Oh, like the poster above me said.
@i declares an integer variable and 10 represents how many times the loop will iterate. Using for or while might be a little confusing to some so using a keyword like loop explains what will happen upon usage better. I also am fond of using brackets since they organize the script, but not really needed. This is regards for a loop. I haven't seen something similar to this in other languages, so this will be great if it is to be implemented. Having a script editor that have a close syntax to an actual programming language would be great, at least in my opinion.
@i declares an integer variable and 10 represents how many times the loop will iterate. Using for or while might be a little confusing to some so using a keyword like loop explains what will happen upon usage better. I also am fond of using brackets since they organize the script, but not really needed. This is regards for a loop. I haven't seen something similar to this in other languages, so this will be great if it is to be implemented. Having a script editor that have a close syntax to an actual programming language would be great, at least in my opinion.
Well you can already do this in XSE by doing something like this:
Code:
#dynamic 0x80000
#org @main
lock
setvar 0x8000 0x0
goto @loop
end
#org @loop
compare 0x8000 0xA
if 0x1 goto @cont
//Code Here
addvar 0x8000 0x1
goto @loop
end
#org @cont
release
end
Anyway I think it is great idea to have loops implemented with less annoying syntax.
EDIT: This is very similar to Assembler loops and I think that if we will be implementing some other dialect for scripting whit some advanced freatures like loops or objects, we should treat XSE like "assembly". By that I mean like C on computers which is compiled into assembly and the machine code. We could make the compiler compile the new dialect into machine code BUT any freature of the new dialect must be implementable somehow through the "assembly" (XSE in our case).
Also, making it open source would be a great idea.
I find applymovement too lengthy of a command; how about reducing it to just move? If you want to move that player, then we use move(player, movement commands)
It's my understanding that there actually are other move-related commands, which teleport a sprite instead of having it execute a movement sequence. Ergo "move" as a command name would be too ambiguous.
Someone mentioned a smart intellisense type dialog, I think that would be wonderful!
(no more having to guess what variable goes where)
And on second thought, I don't know if all these colors are necessary for the highlighting.
Just blue and black, with maybe red for defined terms, would be very easy on the eyes.
Blue = things like "if" and all the functions,
Red = defined terms, from the custom definitions and the predefined ones, they might begin with the #,
Green = commented lines,
Black = everything else.
It can be hard to see the orange font if you have, say a dim laptop screen, or there is a source of light/glare.
I was also wondering if you were going to use c# or c/c++ style naming convention.
c/c++ contains more all caps and all lowercase terms, where as in c# most terms begin with a capital letter, and are lowercase except if the term, is a combination of multiple words.
(ex: applymovement vs ApplyMovement)
Another idea ive got is some kind of plugin system, so people can extend the editor without messing with original source code. So for example I want the editor to be able to compile ASM, I make an DLL that can have pre-defined entry point for program to find. Then I open the editor open some kind of dialog for adding extensions and it would load the assembly and add it to the menu (or another dialog with extensions) from which I can invoke the extension.
As you can see, this is all just aesthetics (the comments are PKSV style).
In addition, please use black font for normal syntax. Also give some syntax, like msgbox or if, bold, dark blue font like PKSV does. I find that really helpful. I think being able to add comments to the script would also be very useful. Everything else you've done so far is good. I especially like being able to put movements/text on the same line as the command.
This would help beginners program in a more realistic way.
Looks good. I personally like the C syntax better (might just be because of consuetude).
About suggestions, I don't know how much it would be worth it, but what about implementing a VisualStudio-like "intellisense" (sorry for using that word since I know many persons can't stand it, but it explains the idea)? So when you open a parenthesis after the function name, a tool-tip-text pops up showing possible arguments for that function.
I'm really new to hacking etc but I am actually studying IT. I just had a class with some assembler coding this semester.
I don't know how many possibilities are available for hacking but maybe you can do one of these things:
1) for/while cycle.
2)Or something like this:
[insert command here] * 6; // do something 6 times no matter what it is. Would be easier than a for cycle and better to code. Also, no-one can possibly create an endless for cycle this way. Then again if your stupidity reaches a critical mass it might happen anyway.
Also, working slowly on a hack that will have a lot of puns/jokes and hidden easter eggs in it. I have designed a map and a rough storyline, but as I'm still learning to script it will take a lot of time until I'm ready to come out with it.
Now that I look at the specific example you've given, the differences are minimal. XSE (as I usually see it posted here) just looks cleaner because it's lowercase. :\
I've seen other examples of PokeScript and PKSV on the boards, though, and those usually look quite a bit messier. Dollar signs, weird command names...
I agree with DavidJCobb's idea for the layout purely because I'm more used to that kind of style.
Though the colours - the orange in particular - tend to hurt my eyes. I'd suggest making ordinary commands (which are in blue) plain black, and then the text using the orange to become the blue. Though I guess then non-commands won't be noticeable...eh, idk. This looks great though, good luck (not that you need luck).
The inline thing is a good feature indeed. I'm fine with both layouts, but I wonder if you're going to include something like what XSE has on its friendly user interface; a built-in guide/command list and/or a text adjuster.
Also, maybe an x-code thing where it guesses which function you're going to do?
For example I type in "p" and xcode guesses that I'm going to do "printf", so it prints out in gray, "printf ("message");", and if I decide to keep it...
I prefer the C-style, but lowercased commands and keywords. Also, coming from a programming (Java) background and wanting to take up scripting, I like to see the print command: message.print("this is a message!"); or msgbox.print("this is a message!");.
I'm not all that familiar with other scripting formats, but I find applymovement too lengthy of a command; how about reducing it to just move? If you want to move that player, then we use move(player, movement commands) or if any other NPC, we use move(var, commands) where var is the players number or whatever.. I'm just blabbering, lol.
The in-line feature is actually pretty great to implement.
Code:
#org @main
lock; faceplayer;
move(PLAYER, 0x1 0x2);
move(10, 0x1 0x2);
move(10, @movement);
waitmovement();
message.print("a message!", #6); // in-line
message.print(@msg, #6); // or without the hash-tag.
release; end;
#text @msg
= this is a message!
#raw @movement
= 0x1 0x2 0xFF
@i declares an integer variable and 10 represents how many times the loop will iterate. Using for or while might be a little confusing to some so using a keyword like loop explains what will happen upon usage better. I also am fond of using brackets since they organize the script, but not really needed. This is regards for a loop. I haven't seen something similar to this in other languages, so this will be great if it is to be implemented. Having a script editor that have a close syntax to an actual programming language would be great, at least in my opinion.
Well you can already do this in XSE by doing something like this:
Code:
#dynamic 0x80000
#org @main
lock
setvar 0x8000 0x0
goto @loop
end
#org @loop
compare 0x8000 0xA
if 0x1 goto @cont
//Code Here
addvar 0x8000 0x1
goto @loop
end
#org @cont
release
end
Anyway I think it is great idea to have loops implemented with less annoying syntax.
EDIT: This is very similar to Assembler loops and I think that if we will be implementing some other dialect for scripting whit some advanced freatures like loops or objects, we should treat XSE like "assembly". By that I mean like C on computers which is compiled into assembly and the machine code. We could make the compiler compile the new dialect into machine code BUT any freature of the new dialect must be implementable somehow through the "assembly" (XSE in our case).
It's my understanding that there actually are other move-related commands, which teleport a sprite instead of having it execute a movement sequence. Ergo "move" as a command name would be too ambiguous.
And on second thought, I don't know if all these colors are necessary for the highlighting.
Just blue and black, with maybe red for defined terms, would be very easy on the eyes.
Blue = things like "if" and all the functions,
Red = defined terms, from the custom definitions and the predefined ones, they might begin with the #,
Green = commented lines,
Black = everything else.
It can be hard to see the orange font if you have, say a dim laptop screen, or there is a source of light/glare.
I was also wondering if you were going to use c# or c/c++ style naming convention.
c/c++ contains more all caps and all lowercase terms, where as in c# most terms begin with a capital letter, and are lowercase except if the term, is a combination of multiple words.
(ex: applymovement vs ApplyMovement)
Well... I'm undecided. I was just going to allow both. But I could add something to change the case if everyone would prefer. Right now it allows for either.
*Sorry if I seem blunt, but there was a lot to reply to.
Don't bother incorporating loops. I can't imagine any scripts that would use them other than to spam msgbox's or something, and technically loops are already possible using the "jump" or "goto" commands. Although those are bad programming style, they work, and you can do loops just fine.
Well I dont really think it would be painful at all. Before I posted that idea Ive tried to throw together a little program in C# that would load an assembly that has specified entry point and invoke the entry point of assembly. (Essentialy the idea of plugin system was an DLL written in .NET language with specified entry point that would get invoked from the main program) The code for loading the DLL is 6 lines long:
Spoiler:
Code:
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] path = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].GetEntryAssembly().Location;[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2][] s = path.Split([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]'\\'[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][SIZE=2][FONT=Consolas]path = path.Remove(path.Length - s[s.Length - 1].Length, s[s.Length - 1].Length);[/FONT][/SIZE][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] a = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].LoadFile(path + [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"test.dll"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]MethodInfo[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] m = a.EntryPoint;[/SIZE][/FONT][/SIZE][/FONT]
[SIZE=2][FONT=Consolas][SIZE=2][FONT=Consolas]m.Invoke([/FONT][/SIZE][/FONT][/SIZE][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]null[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2], [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]null[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]/*Here could go pointer to main form, or exposable data structure or whatever*/[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
This would need little modifications to work in the editor but it is the essential part of it.
And to your response that it will be opensource. That is a good thing, but plugin manager is useful anyway, because if you will release a new version with lets say important bugfix in compiler code, some people could be using modified branch of editor with ASM compiler and syntax highlithing for example. If the modification would be plugin the person that is using it just needs to load it in new version. But if it would be a fork of the source, then they would need to wait for a day or two for new modified version or give up their modification and upgrade instantly. So you need to consider this fact.
Well mainly I wouldn't need loops, I was bored one day and thought "maybe me could implements something like C into it! durr" And this is what exploded out of that.
And #include, #define, and such were out of the question, so I thought maybe...bleh
Anyways, whatever not important
The only C elements we'll (as in noobs like me) need, if at all, are these...
Spoiler:
A simple shorthand for if...then, else (as in no compare crap in front of if1s and if2s)
Spoiler:
Code:
@if
[B]if[/B] variable condition number
[B]then[/B] statement
[B]else[/B] statement2
[B]next[/B]
Don't bother incorporating loops. I can't imagine any scripts that would use them other than to spam msgbox's or something, and technically loops are already possible using the "jump" or "goto" commands. Although those are bad programming style, they work, and you can do loops just fine.
Well I dont really think it would be painful at all. Before I posted that idea Ive tried to throw together a little program in C# that would load an assembly that has specified entry point and invoke the entry point of assembly. (Essentialy the idea of plugin system was an DLL written in .NET language with specified entry point that would get invoked from the main program) The code for loading the DLL is 6 lines long:
Spoiler:
Code:
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] path = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].GetEntryAssembly().Location;[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2][] s = path.Split([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]'\\'[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][SIZE=2][FONT=Consolas]path = path.Remove(path.Length - s[s.Length - 1].Length, s[s.Length - 1].Length);[/FONT][/SIZE][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] a = [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]Assembly[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2].LoadFile(path + [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515][FONT=Consolas][SIZE=2][COLOR=#a31515]"test.dll"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af][FONT=Consolas][SIZE=2][COLOR=#2b91af]MethodInfo[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] m = a.EntryPoint;[/SIZE][/FONT][/SIZE][/FONT]
[SIZE=2][FONT=Consolas][SIZE=2][FONT=Consolas]m.Invoke([/FONT][/SIZE][/FONT][/SIZE][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]null[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2], [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]null[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]/*Here could go pointer to main form, or exposable data structure or whatever*/[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]);[/SIZE][/FONT][/SIZE][/FONT]
This would need little modifications to work in the editor but it is the essential part of it.
And to your response that it will be opensource. That is a good thing, but plugin manager is useful anyway, because if you will release a new version with lets say important bugfix in compiler code, some people could be using modified branch of editor with ASM compiler and syntax highlithing for example. If the modification would be plugin the person that is using it just needs to load it in new version. But if it would be a fork of the source, then they would need to wait for a day or two for new modified version or give up their modification and upgrade instantly. So you need to consider this fact.
Well mainly I wouldn't need loops, I was bored one day and thought "maybe me could implements something like C into it! durr" And this is what exploded out of that.
And #include, #define, and such were out of the question, so I thought maybe...bleh
Anyways, whatever not important
The only C elements we'll (as in noobs like me) need, if at all, are these...
Spoiler:
A simple shorthand for if...then, else (as in no compare crap in front of if1s and if2s)
Spoiler:
Code:
@if
[B]if[/B] variable condition number
[B]then[/B] statement
[B]else[/B] statement2
[B]next[/B]
This post was incredibly helpful, actually. You've made me reconsider how I'm going to implement this. Screw conforming to the current scripting styles, I should just make a logical, flowing scripting language.
This would make some parts, like scanning the Poké for its species (e.g. you need a Rayquaza to pass into Sky Mountain or something)
I'm just saying this because that's what got me when I tried to get the Species from the first Pokémon.
It shouldn't be that hard either, just something like the computer "go regurgitate these five numbers for me repeatedly in this order".
Ahhhhhhhhhhhhhhhhhh I think I'm demanding too much. If you could instead make a small pre-packaged plugin for people like me (nubcakes) that takes certain code words and turns them into real code (we define them ourselves). That would be nice, and the "purists" can also go do whatever they do in a dark room all day that way. And you wouldn't have to deal with the crap that we want! Loops, and everything.
And not only that, if you provide syntax coloring personalization like Notepad++ (which should take like five minutes) it wouldn't have to be case sensitive! Just a side bonus.
AHAHAHA yeah I don't know either. Might be nice, though, if you wanted.
Ehhhh you decide. I'm just glad that you would think of the *twenty* people here who use Mac/Linux. (Because sometimes X11/Wine sucks.)
If or when you get around to plugins, feel free to contact me.
I've worked out some interesting tricks for implementing plugins in c# and would be overjoyed to help.
You can even JUST HAVE the code NSE 2.X uses if you want it.
-I think I'll go the open-source route soon as-well, lol
Edit: There. NSE [classic] is open source. I'll post 2.X's source as soon as it's out of beta.
I'm hearing a lot of good ideas come out of this thread...
This would make some parts, like scanning the Poké for its species (e.g. you need a Rayquaza to pass into Sky Mountain or something)
I'm just saying this because that's what got me when I tried to get the Species from the first Pokémon.
It shouldn't be that hard either, just something like the computer "go regurgitate these five numbers for me repeatedly in this order".
Ahhhhhhhhhhhhhhhhhh I think I'm demanding too much. If you could instead make a small pre-packaged plugin for people like me (nubcakes) that takes certain code words and turns them into real code (we define them ourselves). That would be nice, and the "purists" can also go do whatever they do in a dark room all day that way. And you wouldn't have to deal with the crap that we want! Loops, and everything.
And not only that, if you provide syntax coloring personalization like Notepad++ (which should take like five minutes) it wouldn't have to be case sensitive! Just a side bonus.
AHAHAHA yeah I don't know either. Might be nice, though, if you wanted.
Ehhhh you decide. I'm just glad that you would think of the *twenty* people here who use Mac/Linux. (Because sometimes X11/Wine sucks.)
I don't see that happening. I think people need to go the hard way for learning ASM. All the GBA games have functions for dividing/modulo anyway, you can just call them.
If or when you get around to plugins, feel free to contact me.
I've worked out some interesting tricks for implementing plugins in c# and would be overjoyed to help.
You can even JUST HAVE the code NSE 2.X uses if you want it.
-I think I'll go the open-source route soon as-well, lol
Edit: There. NSE [classic] is open source. I'll post 2.X's source as soon as it's out of beta.
I'm hearing a lot of good ideas come out of this thread...
I'd also be very grateful if I could help you with development of this project. I've already made my pathetic attempt at it(https://www.pokecommunity.com/showthread.php?t=268776) and there is some good code that could be reused.