Diablo II JavaScript Parser Automates D2 Gameplay
mikegogulski writes "d2jsp is an embedded implementation of a JavaScript engine for executing user program code (scripts) inside Diablo II. d2jsp can be used to make Diablo II do almost anything that can be done in the game by a human player, and some things (such as knowing the immunities of monsters four screens away) that cannot. d2jsp has an installed base in the tens of thousands, an active user community of over 6500, and hundreds of active projects in its script database. Work progresses toward the Holy Grail of Diablo II hack development, the Complete Diablo Bot, which will eventually enable the entire game to be played automatically without human intervention.
All Your RPG Are Belong To Us!"
if I don't understand the motivation behind a project or hobby, I just keep my mouth shut and move on. In this case however, I feel compelled to say this seems like a really dumb waste of time.
Paco: "Hey man, did you beat Diablo 2 yet?"
Dignan: "I dunno, my computer is playing it now..."
Paco: "Oh, so you paid for a game your not playing, and you have to share your computer with a scripting engine?"
Dignan: "Yes, I am stupid, I am a stupid head, a huge stupid headed freak."
Since I wrote the script to that exchange, I took some liberties with Dignans last reply, but you get my general point.
Cloud City Digital: DVD Production at its cheapest/finest
All of my work is automated to do itself.
My oven cleans itself.
Garden Waters itself.
And now my games are all automated to play themselves.
Time to start drinking a glass of wine a day.
A waste of time is investing literally hundreds of hours a week on a video game. This is quite the contrary, it gives you the ability to play when you want, with the awesome items/characters, without having to spend the countless hours to build them up yourself.
It's a concept even a non gamer should understand. If you already don't enjoy something, of course anything branched off of it will be of ill regards in your mind. This allows people that still enjoy the game a chance to still play and compete, while being able to fulfill other facets of their life.
This thing has the power to make Diablo2 even less interesting ? How cool...
So... It's like building a segway to run on your treadmill?
Honestly, this is a quite amusing cheat, and one that has plagued MUD, MOO, and RPG developers for years. If you have a game that requires no real thought or interaction, and whose gameplay consists of "hack monster, pick up shiny thing," the real fun can be in teaching a computer to play the thing while you read the paper in the morning.
Quite frankly, this brings Diablo to a whole new plateau of intellectualism that I have never thought the series would achieve. Besides, the program collects shiny things for you. Shiny things!
The ______ Agenda
From here on, I declare all wisecracks about not playing the game to be Redundant. The jokes been made. If you don't understand the fun is programming to beat the game, think about it. If you don't think programming can ever be fun, go back to Fox.
Do you know how tedious finding items is? This is a bot that will do it for you. I've been able to start doing my homework again, as well as other 'real life' tasks. When I want to play I stop the bot and see what it found. Good items: YAAY! No items: oh well... No hours lost to the game! It's brilliant.
Crystal Meth: Would you ingest somthing made from a poisonous gas and an explosive metal? You do it every day -- Salt!
Most of the comments are idiotic. You don't understand the concept of the game. Diablo II is an ITEM based game. The better the ITEM, the more valuable it is. Out of this came an economy. A virtual trade for better items or to sell for cash thru auction houses. Now the bots and scripts were created to get these items out greed for more cash. It was designed to automate repetive runs on boss monsters that yield the best items. Its not unheard of bots making 20,000, 40,000, 100,000+ runs to get the item drops.
In theory, this would be possible for any game.
:)
How it works is, let's say you want to move.
script: move(x,y);
This would move your player as if you clicked those coordinates on the screen yourself (though other stuff is involved, it's game x y, which is not actual screen coordinates at all, so requires other things as well). d2jsp calls the function that "clicking" would, but does NOT use keypress or mouseclick events. It calls the functions as though the game itself were calling them.
In short, it requires lots of reverse engineering, as you can imagine. "Move" is about as simple of a function as one could imagine, other than "print", which again hijacks the print function inside Diablo II. d2jsp (in the latest version I am working on) can literally do almost *everything* that a player sitting there could. It's no longer a matter of can't.
Of course, a picture is always worth a thousand words, so getting someone to demo you a script in action would probably answer all of your questions. That, and of course looking at the scripts themselves.
I just want to know whether the person who wrote this program realiazes the irony of them slapping a licence agreement on a program whose sole purpose is to violate another programs licence agreement.
Slashdot: Proof that a million monkeys at a million typewriters can create a masterpiece
Adding scripting into games is a great idea, but it is (mostly) wasted on first-person games. Where it is really useful is in real-time strategy games (Command and Conquer, Homeworld etc.). A player with prepared "smart" scripts would be able to give high-level orders to his units and have them act with rudimentary intelligence, gaining a real advantage. It would also make the games more realistic.
Sure, most such games allow one to group units and perform rudimentry "smart" actions (such as returning for repair/refuel when damage is high or fuel is low) but that isn't sufficient, especially when handling a large number of units. Everyone who played these games knows the sinking feeling of watching helplessly when some critical units take the most inane course of action... The game then reduces to a glorified ardace game, won by the faster-clicker instead of, well, the better strategy.
Does anyone know of a reasonable scriptable real-time strategy game?
Once again, d2jsp also works in single player mode, or on bnetd servers (which, for those that have been on a mountain top the past year or so is an emulator of battle.net).
In neither case does it violate any user agreement, or laws.
Progress Quest is a next generation computer role-playing game. Gamers who have played modern online role-playing games, or almost any computer role-playing game, or who have at any time installed or upgraded their operating system, will find themselves incredibly comfortable with Progress Quest's very familiar gameplay. Progress Quest follows reverently in the footsteps of recent smash hit online worlds, but is careful to streamline the more tedious aspects of those offerings. Players will still have the satisfaction of building their character from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior, well able to snuff out the lives of a barnload of bugbears without need of so much as a lunch break. Yet, gone are the tedious micromanagement and other frustrations common to that older generation of RPG's.
Progress Quest belongs to a new breed of "fire and forget" RPG's. There is no need to interact with Progress Quest at all; it will make progress with you or without you.
http://www.progressquest.com/
You got that just exactly right, Coward, with a few larger exceptions.
.ini files at all: "ParseIt". You can reference that information at http://www.fileaholic.com/idgames/utils/stats/pars eit-b1.txt or just take your pick from the multitude of links by doing a Google search on "parseit Armstrong".
a) No javascript engine has ever been "incorporated into" DiabloII. Probably never will be.
b) njaguar didn't copy the idea from smoke, and he didn't do it out of "smite" (could you possibly have meant "spite"?). The idea has been around since '98 or before when Jared Armstrong wrote the first console for the game "Sin". For DOS, even. The console has a familiar name if you have looked through
c) d2jsp is by no means a reverse-engineered JED, and njaguar has better means of "exercise". d2jsp is utterly different at the very core of the program. To be certain, DiabloWorld, morg, et. al., would have loved to have njaguar hang around and give them all this glory and thunder. But since he did not have to use the same hacked/phony packets (he uses none), nor be reliant upon programs such as d2HackIt in his scripting, he properly did NOT name his program a JED release, and he SHOULD take the full credit that he deserves. The credit for going this distance is his alone.
And just so that you stay current, Anonymous Coward, Smoke is still posting at DiabloWorld. Check out his comments in morg's DiabloWorld forum, in her piteous attempt to slam njaguar in any manner possible. I won't corrupt this post with a link to that ugliness. In that very post, smoke recognises d2jsp's superiority, and I suspect that this will forever be the thorn in morg's side. Anyhow, If smoke needs additional credit (and it appears that he does not), by all means, let him do the work. Elsewise his programming time was up long ago; his work finished on a console which has hit an obsolescence out of his own complaisance or lack of interest, remaining utterly and fully dependant on d2hackit and/or other people's code.
So please, take smoke's own advice to stop sniping, and just play quietly in your own sandbox. Honestly, the folks at d2jsp won't miss hearing you whine a bit, I promise.
I wrote this after all the hacked items, all the Iths, etc. These ruined the game. Duping ruined the game. Botting came long after these "bad cheats", and if anything, has only made the game better. It puts LEGITIMATE items back on the market, instead of hacked and duped ones. This gives players that refuse to use these cheats the only semi acceptable advantage possible. All items and experience gained with this bot is 100% legit, it does not make use of any exploits or bugs in Diablo II's code.
Blizzard went after bnetd because it allowed people to use pirated copies of their games on public servers. Since the people playing on Battle.net have already bought the game, they are in fact customers, and since we get over 100,000 unique hits a month, I'd say a huge portion of their customer base uses this (for whatever reason). That would be pretty silly of them to piss off such a huge chunk of their customer base, especially considering they aren't making nor losing any money in either case by the existance of this product. If anything, it only increases the longevity of the game, and popularity of the company, which can only mean positives for their marketing.
Blizzard punishes the legit players. I started getting into Diablo II hacking after being falsely accused of using hacks/cheats in the first place. This was back when they first started tagging "cheaters". I had never used a single hack or cheat before. They insisted I must have used some form of cheat, which was complete bull. After that I pretty much gave them my mind and decided "why not, I'm getting accused of it anyway, and am forced to play with other people that HAVE in fact cheated." Unfortunately, my case isn't the lone example. Remember the fix for the Soul Stone? Realm down for 30 minutes! Good job blizzard! What about the realm downs people still get all the time while playing legit? Funny, my bot and scripts never get realm downs... The storys just go on and on... So, if you want to continue playing the game "legit", and try and tell other people what to do, go right ahead. But don't expect people to voice their reasons as to why things are the way they are. Blizzard created the path on which its users have followed.
First there was Rogue, then someone wrote Rogomatic. Then someone wrote a limited but cool-looking clone of Rogue called Diablo II, and someone wrote d2jsp. History repeats itself!
This is the typical loser talk you hear from every single hacker on bnet. Hack X ruined my game so I use hack Y because its the only way to compete with those using hack X. Its the reasont there are hundreds of maphackers on the realms, and its this kind of talk that makes them think they are legit. Thats why whenever I get into a legit game with people playing through the slow areas in act 1, some maphack user always joins the game then insists on running straight to every wp, every stairway etc before impatiently spamming HERE HERE HERE because the legitimate players havent found the way the old fashioned way yet. Every single person says it just lets them operate faster, but when you come down to it thats the same excuse the dupers have, why run pindleskin 10000 times for a grandfather when you can just dup one, the duping doesnt use any server bandwidth, doesnt require extra servers, but 5000 people running pindlebots 24/7 sure chews up an awful lot of game slots on the bnet servers, sure the pindlebots dont mind waiting through a 2000 game queue to get into a game, but the same queue is a pain in the ass for anyone who is actually sitting at their keyboard playing the game. All those bots chew up resources that were assigned for the use of players and reduces the standard of play for those players. Also dont forget that all the bot generated items have a similar negative effect on real players, they saturate the marketplace meaning that the piddly few items legit players find are worthless for trade, not to mention the trouble with item grabber scripts etc, while im pressing alt to see whats dropped some script has already grabbed the loot for a player who has 50 of everything stashed from his bot anyway, how does this not impact on my game? And dont go blaming blizzard because you havent the guts to play the game as written. "I didnt mean to steal those Nikes" said the criminal, "but dont blame me, blame Nike for making it too hard for people like me to afford them". If your wearin your ill gotten gear, its just stupid to look down on those wearing gear ill gotten in a different manner, your just taking the same path as every other loser-lowlife-cheating-whiner out there, ruining other peoples experiances in life/games/whatever just to improve your own.
Slashdot: Proof that a million monkeys at a million typewriters can create a masterpiece
1. They increase the server load, since Blizzard never intended people to be able to play the game 24/7. In practice, this is often seen as increased game creation queues.
2. The bots decrease the item value and skews the game economy. This would be no problem if players ran the bot on the Open Realms this game has to offer, but since they're usually used on the Closed/"Secure" Realms to harvest items that should normally take a lot of patience to find (and therefore be rare), many legit players not using bots are affected. Simply because the very rare items non bot users have found is suddenly not worth as much anymore in in-game trades. Bots inflate the item values.
What surprises me, is that there are so many bot users that seem to find using the best items this game has to offer as the best part of the game. Personally, I find the process of earning the items through some effort the best part. Without any effort put in the game, I would feel no accomplishment whatsoever and no pride about finally getting some "uber item", but I suppose bot users still do, even if their computer play for them while they sleep.
Beware: In C++, your friends can see your privates!
I'm sorry, I didn't respond to your second paragraph.. :)
:) In that sense, I did in fact "win". :)
Just like it's impossible to write a program that cannot be cracked, it is also impossible to stop someone from being able to write a cheat or hack for a game. Given enough time, and enough interest, anyone with the skills necissary would be able to accomplish something like this for *any* game out there, past, present, or future. The only way to prevent this is to make it on a console (a very hard to hack medium). And even then, it's always going to be possible, and done.
Give people a medium in which to compete, and inevitably you will have people that must [try to] cheat. I suppose it's human nature to want to be the best, by any means possible. Again, I didn't write d2jsp for personal gain, other than as a programming and reverse engineering project.
The pkers, dupers, bots, and excesive lag drove us off of battle.net. Blizzard's refusal to aggressively go after the cheaters was bad enough, but when they accussed the bnetd crowd of piracy, they lost me as a customer. I own two copies of the original Diablo, Warcraft, Starcraft, a few expansion modules, and Diablo 2 and D2X. I didn't even consider their newest game. They won't get another dime from me. They lost a loyal customer.
Yes, we have our own bnetd realm. No, we do not pirate. Every single person on the realm owns the damn game. Blizzard has no right to tell us we can't play it the way we damn well want. We have realm rules, break them and get booted forever. We've only needed to boot two people so far (one for using cheats, the other for being an annoying asshole).
Blizzard says we are pirates because we don't validate the CD serial number. Well, we can't. Blizzard won't tell us how to do that and won't set up some kind of validation server for us to go through. The bnetd development crowd has offered to work with Blizzard. Blizzard refuses to cooperate.
The people running the diabloii.net (and diabloii chat room) are just as bad. They are so busy kissing the Blizzard ass that they alienated their biggest supporters by banning any and all discussion of bnetd.
-- Will program for bandwidth