Since I saw that I wasn't the only one, who wants to use Spark in a windows form application, here I am, posting the insim app i have started.
The base is still rough, but also pretty easy to understand(I hope).
The only condition is, that I am not responsible for any damage caused by it.
Feel free to upload any changes/improvements you apply to it. I'd be more than happy if somebody improves it.
The only neat feature there is to it is the button queue. You will see, that I have tested it with 88 buttons. I think that 10ms interval between each button is pretty safe. But you can change the interval, and how many buttons are sent at once too.
So, without any further ado, here's the source.
[E] Also, I have one question. In LFS_External, there was a very easy way to set the title of the typein box. But how do you do it with Spark? I didn't understand the logic from InSim.txt. =/
I probably shouldn't have translated those, but I couldn't resist it.
I only said that bulgarians are idiots(thinking that jokes are known to human kind), and a bunch of bulgarians come in and act like what? Like grown up, mature, calm people, of course.
Sure thing. Just to prove how some of the bulgarians really do take things as life depends on them.
(I was never serious about all bulgarians being idiots, in case somebody else hasn't got the sarcasm, but anyway, feel free to flame.)
1st, let's make like a dictionary, because of the younger ones in the forum. F will obviously be the F word(first place, for most usability in the following replies) P for the female P word (hint: Pcat) S would be another famous word, you probably can think of.
"Can I F your Fing P, you piece of junk. What do you think you are !? , circumcised ? a gipsy ? .. you think that you're not a bulgarian . I will F you , you pieces of junk. Spamers, crash gamers and cruise drivers." .. Then he demands to never see me again, and some tsts-ing follows.
"What are you GAMER, are you from the minorities, you zany.
We've had enough of such fictitious idiots like you GIANTS infront of the PC and mouses in life.Go and hide in your hole and shut your mouth and live in your imaginary life, you cheesy squirt.Wash your (my bulgarian dialect culture does not include that word, but i'd guess in the current case it's something like dirt) from your eyes and don't open your Ster on topic BULGARIANS and BULGARIA, you gipsy!!!
"Hey Bulgarian are you a Turk or a gipsy?? What are those bullS which you're writing?? How could you insult the entire Bulgarian nation ? That's the kind of people that should be chased away from Bulgaria!"
I actually tried to recreate all the inaccuracies in their sentences in english too, so you could wonder, just as I did, what the hell were they trying to say. So, yes all the inaccuracies were not unintentional.
It was pretty entertaining reading and translating that, I have to say.
No. I, as in myself, don't need this information. It is the people that may land on this thread after searching for the answer of that same(or similar) question.
See? This thread just turned from completely useless to actually helpful. If anyone discovers this with the same question they will first see the way how to do it. And then they will see that it is not good practice to do it too. It's the 2 things I'm always looking for when searching for something.
But that was thanks to you, MadCat, and not the OP(who never posted again here, because he found his solution).
It's kind of awesome tho, don't you think?
Even one more helpful thread is a lot. Because there aren't many on the internet. Most of them end up just like this one would.
This still doesn't excuse his demanding and selfish behavior.
And what if the solution was something more than this?
It's good to provide answers along with the questions in the internet. People can search by questions, because if they already knew the answer they wouldn't need to search for it.
I agree that it is something easy, and thank you for providing a possible solution, but this is not the whole problem. You can't just demand help and give nothing in return. If someone helped you irl, you'd at least buy them a beer, right? You wouldn't just say "Ok, you can go now." and walk away, would you?
Yes, we do care. He asked for help, and when he found the solution he did not share it. What if anyone else encounters the same issue? If one person has, then somebody else could too.
And I don't like his demanding and selfish behavior either(not talking only about this thread).
Why do I think the solution is needed? :
Don't you feel tired when after hours of searching in google(or the search engine you're using) you've found a forum with the exact same question as yours.. BUT in the end the OP has found a solution, and posted that he needs no further help? Have you never encountered that? Because I do quite damn often, and it's because of such people. Sometimes it gets quite frustrating.
There is no point in opening a thread, asking for help, and then not posting the solution. So may I ask you not to open any request threads in the future, if that is how you plan on ending them.
If I was immature enough, I'd say ef you and your effing selfish behavior, but since I'm such a nice person, I'm not going to.
I have to say, this library is everything I expected it to be and more(literally, more) from my experience with it the last 3 days.
For those 3 days, I just had the best coding experience I've ever had so far. I totally love this library. This is why you're one of my idols, DarkTimes.
As for running it in a GUI application - I did just that. But I made a new project, if that matters. I never had to execute the .Run command tho.
And, since my InSim knowledge is not very wide, may I have my moment of dullness, please: Does setting a MCI interval mean that the connection will be kept alive, or do I have to send a packet from the app's side too? So far, from my experience, this is enough, but I'm not sure if it is the right way of doing it.
Download Visual C# 2010. Start a new form project. Click twice on the form. Then type this: MessageBox.Show("Hello, world! I am 18 years old and I can finally do this.");
Now you can, and you're not a 2 year old. So his point is valid again.
But really, I didn't get the point of the "Can you write a Hello world" question either. He said he can do basic C#. Not that he can't do any. Just my opinion.
Hm.. it says "Yearly One Time Subscription for € 5.50". Is it my handicapped english, or are "yearly" and "one time" subscriptions entirely different things? It seems kind of misleading to me. Is it yearly, or is it one time? Not trying to flame, but if I'm right, then that text needs to be changed.
Ok, whatever, if you want to flame so bad - flame. I don't like acting like your mother anyway. You just agreed and ignored me in the same time, so ok - prove how mature you guys are by calling each-other "n00bs" and "kids", and telling each other to grow up.
It's just ..lame ..you know?
Anyway, I'm not going to stand in your way anymore.
Nobody needs to put anybody in their place. Just let people be. If they become too annoying, just ignore them. That's what's good about internet forums - there are report buttons too.
If a user on your server is causing trouble, ban them. It's your server, and your call. I'm sure that he can't send you millions of people.
That was VERY unnecessary. I mean come on now.. really? -.-
1. Ok, I am not going to argue about where it came from. It came from somewhere, and it is based on somebody's work. That was my point.
2. He can always patent his ideas, if he wants. But it is really hard on the internet. Take as an example that case where someone claimed that they invented the image-link technology. Silly.
But I don't think that he has to pay to any company to do that?
3. You will see that happening very much. Revenge banning is my favorite. After all, why would you need to go to the server of the guy you've just banned for a good reason?
And don't be surprised if you are asked for payment from the developer, to get the task done. The tasks here go on very underpriced rates, true, but don't expect someone to do this for free. Good luck on finding such a person tho, but I'm just saying this so you don't get shocked or disappointed in the end, if it doesn't work.
Was that really needed to be said? I think it's time for the whole community to stop and think of how we should treat new initiatives. Every time a new thing comes out, some of the "competitors" jumps out and goes like "Not to mention that my server XYZ is better and you stole all my ideas in the first place" or something similar to that. I don't see many threads where people are just nice and supportive(I don't say that I haven't seen any). I understand that the OP sounds a bit silly, but weren't most of us like that too when we started? You got someone's work, and you claimed it to be yours, because you thought you did much work on it.
Let's follow LsC's insim history: I got dougie's source. PoVo, you got Azzano62's source, which had some of my source too in it(because we shared them with each-other). And now this guy got the source you released (which also has T-RonX's, dougie-lampkin's, Azzano62's and my code in it), and you get mad because he did the same we(Azzano62, me and you) did? Maybe he is a bit over-paranoid, that someone will steal his ideas and his server won't be as unique anymore, but just let him be, and do whatever he wants to do. Because, once again - we did the same.
I think that's the dougie's original code there. But, he seems to have understood how finally works. Who I think doesn't understand is the person that suggested a try/catch in the finally handler(if that's what it is - a handler). Which will probably work, but finally loses it's point then, imo.
Why don't we give a simple example then on how try/catch/finally works then? I'll start, and if something is wrong or not efficient enough, someone will hopefully correct me.
So, there's my idea of how it works:
try { Try to execute the code here, and prevent the program from crashing, by redirecting the exception to another handler. } catch (Exception E) { Catch any thrown exceptions here, and do whatever you want to do with them. } finally { If you need to perform a vital task no matter if the code above has failed or not, you do it here, but there is no more "crash-protection". Every thrown exception will cause the program to stop execution and the popular "send/don't sent" window will appear. There is a solution for this too, I think. If you catch all the unhandled exceptions in the Program class, this could be prevented too, if I'm right. }
That's my idea of how it all works. I know that it probably doesn't do exactly what I've said, but I admit - I don't know how does it exactly work.
That's why, imo, in a finally handler(if that's what it is, once again), you need to get all of the possible problems out of the way.
I know that my terminology sucks, so you will either have to get over it, or nicely correct me.