[QUOTE=<ToD> Aaron;20942641]userClickedHelpAFriendButton()
then the server adds 1 to the amount of friends you've helped.
[/QUOTE]
Does the game actually have a "help a friend" button that you can click repeatedly as many times as you want? Or does the button only appear when there's a friend actually needing help? I'm guessing it's the latter.
So I'd expect that the server tells the client that a friend has requested help, and the request ID is #45904. The client displays the button, and when you click it, the client sends a message to the server that you've accepted help request #45904. The server checks that there is such a request, and it hasn't already been accepted before, then gives you the money or experience or whatever. If you try to accept that same request again the server will reject it as a duplicate, and if you send some other ID the server will reject it as not corresponding to any existing help request.
Don't think of the game as running in your browser and just informing the server about what you're doing as you play it. [i]The game runs on the server.[/i] The client just provides the user interface.
[QUOTE=Wyzard;20950395]Does the game actually have a "help a friend" button that you can click repeatedly as many times as you want? Or does the button only appear when there's a friend actually needing help? I'm guessing it's the latter.
So I'd expect that the server tells the client that a friend has requested help, and the request ID is #45904. The client displays the button, and when you click it, the client sends a message to the server that you've accepted help request #45904. The server checks that there is such a request, and it hasn't already been accepted before, then gives you the money or experience or whatever. If you try to accept that same request again the server will reject it as a duplicate, and if you send some other ID the server will reject it as not corresponding to any existing help request.
Don't think of the game as running in your browser and just informing the server about what you're doing as you play it. [i]The game runs on the server.[/i] The client just provides the user interface.[/QUOTE]
This. You can't fuck around with a game with everything verified on server side. Your best bet is to hope it was coded badly in places. Go look.
[QUOTE=Wyzard;20950395]Does the game actually have a "help a friend" button that you can click repeatedly as many times as you want? Or does the button only appear when there's a friend actually needing help? I'm guessing it's the latter.
So I'd expect that the server tells the client that a friend has requested help, and the request ID is #45904. The client displays the button, and when you click it, the client sends a message to the server that you've accepted help request #45904. The server checks that there is such a request, and it hasn't already been accepted before, then gives you the money or experience or whatever. If you try to accept that same request again the server will reject it as a duplicate, and if you send some other ID the server will reject it as not corresponding to any existing help request.
Don't think of the game as running in your browser and just informing the server about what you're doing as you play it. [i]The game runs on the server.[/i] The client just provides the user interface.[/QUOTE]
Neither, you can go to a different page and click a link based on your Facebook friends and it'll bring you to their farm to help. You can do keep doing this though but you need to click a few buttons in the game too.
[editline]03:37PM[/editline]
[QUOTE=ramey;20957221]This. You can't fuck around with a game with everything verified on server side. Your best bet is to hope it was coded badly in places. Go look.[/QUOTE]
It's a "Beta" according to the people who make it and I'm sure it's somewhat badly coded. They aren't Facepunch, they don't think of all of these security holes in it. I posted the AS code if you wanted to look at it. Although what he said made sense, I'm pretty sure that the requests aren't generated in that way, I'm pretty sure it just calls a function saying you helped a friend when you do that since it only accepts code from their website and the facebook app.
The only thing you can really hack in an online game is godmode, and only if it is collision based damage.
[editline]09:14PM[/editline]
[QUOTE=<ToD> Aaron;20958928]Neither, you can go to a different page and click a link based on your Facebook friends and it'll bring you to their farm to help. You can do keep doing this though but you need to click a few buttons in the game too.
[editline]03:37PM[/editline]
It's a "Beta" according to the people who make it and I'm sure it's somewhat badly coded. They aren't Facepunch, they don't think of all of these security holes in it. I posted the AS code if you wanted to look at it. Although what he said made sense, I'm pretty sure that the requests aren't generated in that way, I'm pretty sure it just calls a function saying you helped a friend when you do that since it only accepts code from their website and the facebook app.[/QUOTE]
Even the dumbest of multiplayer coders put EVERYTHING (except physics and collision detection sometimes) on the serverside. Otherwise the game would have been hacked in seconds.
Also, I'm sure you aren't the first person to think of this. Either someone already did and they patched it, or they made a private hack.
Your client side hacks won't affect the server for the reasons countlessly stated above. Pretty simple.
Basically; the only way this is going to happen is if you just automate the monotonous tasks you have to perform to get money.
Basically, make your own function set like AutoPlanter(), AutoHarvester() and so on. If your program emulates a real player, but much faster, the shouldn't run into any problems.
[QUOTE=neos300;20961146]Even the dumbest of multiplayer coders put EVERYTHING (except physics and collision detection sometimes) on the serverside. Otherwise the game would have been hacked in seconds.
Also, I'm sure you aren't the first person to think of this. Either someone already did and they patched it, or they made a private hack.[/QUOTE]
You would be surprised how dumb people can be.
[QUOTE=<ToD> Aaron;20958928]They aren't Facepunch, they don't think of all of these security holes in it.[/QUOTE]
What I've been describing is basic client/server game design principles that anyone writing a multiplayer game is likely to be familiar with. This isn't some special secret knowledge that only the people in this thread have ever thought of.
[QUOTE=DrTaxi;20962366]You would be surprised how dumb people can be.[/QUOTE]
Youd be suprised that those people never get hired for any kind of game.
[QUOTE=neos300;20964446]Youd be suprised that those people never get hired for any kind of game.[/QUOTE]
See: [url]http://www.gamersfirst.com/warrock/[/url]
[QUOTE=Chris220;20961756]Basically; the only way this is going to happen is if you just automate the monotonous tasks you have to perform to get money.
Basically, make your own function set like AutoPlanter(), AutoHarvester() and so on. If your program emulates a real player, but much faster, the shouldn't run into any problems.[/QUOTE]
That would work if you could actually make it work much faster, I also doubt it is client-side.. The only thing would be making a bot that works human-speed or a bit faster(but still along the server limits), and you make it do that overnight.. But that would be quite far from an hack.
Or you could packet edit. They might not have encrypted the packets well enough, and you can access the source either way tho..
[QUOTE=bunguer;20978477]That would work if you could actually make it work much faster, I also doubt it is client-side.. The only thing would be making a bot that works human-speed or a bit faster(but still along the server limits), and you make it do that overnight.. But that would be quite far from an hack.[/QUOTE]
That's my point, he's gonna have a hard time making an actual "hack" for it, might as well do the best he can and make a bot :P
[QUOTE=<ToD> Aaron;20930367]There has to be SOME part on the client side where it tells the server you're getting money. Otherwise it wouldn't work at all. Make the call a bunch of times and the server will handle getting you money.[/QUOTE]
For example: when you harvest, the client probably tells the server "harvest this plant". The server then checks that the plant is actually planted, and then credits you serverside. In other words, [b]you could make a program that automatically harvests what you actually have, but it can't harvest plants that aren't actually planted[/b].
Sorry, you need to Log In to post a reply to this thread.