Implementation of an Idea
#1
Note: I've been playing this game for some time, and have never done anything that I considered cheating, and I have no intention of starting now. So don't misconstrue anything I say in this post. :)

To start, I've read these articles on scanners:

Archive of Chaos

Freshman Diablo

Now, the issue. I have a problem. I'm a packrat, and I've come to terms with it. In my most recent stint on Diablo 2, I used the program ATMA (for those of you that are familiar with it) that essentially allows one to trade among single player characters. For me, this greatly increased the longetivity of the game, and made it more enjoyable.

What I want, is a simple interface for reading MY OWN character files (possibly without opening Diablo) and/or moving items to/from my own characters.

Why don't I just go out on bnet and transfer there? To be honest, I have no problem doing that, but 1) there simply aren't enough people on to help me do this, and 2) even if there are, they're likely to be playing a game and not just lounging around waiting to help me.

Gosh, I'm so long-winded. Now to the final point:

Does the program I'm talking about exist for Diablo 1. ATMA and Flavie filled those roles for me in Diablo 2. I'm not sure how scanners work, but could they translate my character files for me? Even if I'm not on Battle.net? What is the communities stance on "legitness" of self-scanning?

And has anyone written a program to move items between characters assuming they're both on the hard-drive? If that doesn't work, could I create a mod that has some special features (I bet that's more work than I'm cut out for). And to note, I have no knowledge of hex or assembly, but I'm used to the idea of computer languages and don't mind learning new things.

Maybe this is something that only I'd find useful, or maybe it could help others too.

Thanks for the read,
NatNit B)
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#2
>Does the program I'm talking about exist for Diablo 1. ATMA and Flavie filled those roles for me in Diablo 2. I'm not sure how scanners work, but could they translate my character files for me? Even if I'm not on Battle.net?

Afaik, there is no exact equivalent of ATMA for D1, but there are programs that let's you copy items and therefore import\export them. The few that I used in the past also have handy things like character files back ups, and a few things that can be used to 'cheat'. Though in my opinion it does rely greatly in the context on how you use it.



>What is the communities stance on "legitness" of self-scanning?

Not quite sure what you mean here, since an item that scans as 'clean' can still technically be illegitimate. And an item that scans as flagged, can be legitimate. Someone more technical minded can probably provide more details, but from what I know some scanners use a list to check the items scanned. Due to the limitations of the game etc, that list can generate a false reading.

edit: Come to think of it Stu's backup program was fairly close to being the ATMA of it's time I guess. Until iirc, some jerk ripped off his work and modified it for a fairly blatant cheating purposes.
Reply
#3
hmmm, this eems quite interesting, if anyone comes across such an app i'd like to see it too.

I've had enough items lost by muling in game, and being dropped, so much that i dont take the hassle nowadays, and pretty much every character gathers his own items. It would be useful to transfer out those massive axes of haste from my rogues however.

i've never heard of such an app, but id think id like to know the location.

afaik the community centers on not cheating, if you use any apps to backup in case of game drops, or scan others outside dueling, or even use god-like hacks versus other hackers, all that kind of stuff is allowed by many. That cheating is possible with those tools is of no matter, it only might make it a bit harder for the user to steer clear of those uses.
Some do not like aything 3rd party, others allow more, me for instance wouldn't mind someone cheating as long as he's a respectful player, i wouldnt understand his reasons for cheating, but if he's an okay gaming mate, there's no problem with me, as long as i get no dupes from the fellow. And the cheating one wont be very overpowered, most high lvl legits are way better players anyway.
of course i cant speak for everyone on this however.
(and note i'm european, there might be differences in gaming style, as for instance i noted during my first US east duel that i was allowed to use a full belt, i should've known thta before the res.)
Characters: Standard Diablo Rogues: 'Paardenpoep' l36, 'Purechocolade' l31; Sorcerers 'Toverkol' l40, 'Zwarte Piet' l32, 'ZureHaring' l28 (no fb), Warrior 'Klotebeest' l29, LoL characters: rogues 'Roggebrood' l26 and 'Ironvrouw' l7, sorcerer ToverLol l20, warrior LolleBolleGijs l16 ironman character name 'Ironlady', read Toverlol's journey log
Reply
#4
> Afaik, there is no exact equivalent of ATMA for D1, but there are programs that let's you copy items and therefore import\export them. The few that I used in the past also have handy things like character files back ups, and a few things that can be used to 'cheat'. Though in my opinion it does rely greatly in the context on how you use it.

Hmm, ok. I would only use it for make it text files of my own characters inventory, and direct muling of items between characters while not in game. Thus, it wouldn't affect in-game experience at all.

> Not quite sure what you mean here, since an item that scans as 'clean' can still technically be illegitimate. And an item that scans as flagged, can be legitimate. Someone more technical minded can probably provide more details, but from what I know some scanners use a list to check the items scanned. Due to the limitations of the game etc, that list can generate a false reading.

No, you misunderstood (although I understand why, I was quite unclear :)). I don't care about whether or not my items show up as hacks on scanners, since I find all my own items, and don't trade or accept gifts. :) Knowing for a fact that everything you have was found yourself (with a little understanding of item generation routines), far outweighs what a trainer can do. If possible, I'd just like a text dump of my own character's inventory, for item collecting purposes (so I don't have to go through and write the items for every single thing, etc).

> edit: Come to think of it Stu's backup program was fairly close to being the ATMA of it's time I guess. Until iirc, some jerk ripped off his work and modified it for a fairly blatant cheating purposes.

I've looked at this, a found a version that worked up until 1.08. I don't like the idea of separate import/outport, as it is more easily abuse. Something that would work like this.

$ move item1 from player1 to player2
;; checks size of item1
;; checks if player2's inventory has enough space
;; if so
;; export item1 from player1
;; import item1 to player2
;; delete item from player1
;; else
;; return error message

Note: I don't know how these things work, but I think import/export works something like that. I've never used third party programs, so I'm at a loss.

Maybe with Stu's permission, I could try and modify his program to suit my means, and possibly create something that other players can use, although I'm sure people will consider it a grey area, as third party programs always are. If I chose to do this, would anyone help me get started, or something. Or maybe I could contact Hakai no Tenshi (maker of ATMA) and see I could grab a snippet to modify for Diablo 1, but that doesn't seem easy. :)

NatNit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#5
> hmmm, this eems quite interesting, if anyone comes across such an app i'd like to see it too.

Yeah, it could make life easier for the average Diablo packrat. :)

> afaik the community centers on not cheating, if you use any apps to backup in case of game drops, or scan others outside dueling, or even use god-like hacks versus other hackers, all that kind of stuff is allowed by many. That cheating is possible with those tools is of no matter, it only might make it a bit harder for the user to steer clear of those uses.
Some do not like aything 3rd party, others allow more, me for instance wouldn't mind someone cheating as long as he's a respectful player, i wouldnt understand his reasons for cheating, but if he's an okay gaming mate, there's no problem with me, as long as i get no dupes from the fellow. And the cheating one wont be very overpowered, most high lvl legits are way better players anyway.
of course i cant speak for everyone on this however.
(and note i'm european, there might be differences in gaming style, as for instance i noted during my first US east duel that i was allowed to use a full belt, i should've known thta before the res.)

Yes, I personally don't find it in the realm of cheating. It would never be used in a game with others, and would only be used to do something that another copy of diablo and another computer could do for me. :rolleyes:

NatNit

Edit: "another copy of diablo and another copy of diablo". Hehe silly me.
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#6
I used to use Stu's in 1.07 days as an item manager, but the delete item on export feature did not work properly and could cause character corruption, so it was incumbent upon the player to drop the exported item and start a new game to destroy it. When 1.08 came out, Stu modified his trainer but that modification caused corruption of inventory. I posted about that on his now defunct forum and received a response from Obiwan who developed what I consider to be the best item manager ever. The program is limited solely to item export and import and deletes the item from the file upon import and from your character on export. It worked flawlessly with 1.07, 1.08 and with all of the 1.07 mods. Stu never did "fix" his program and withdrew from the Diablo scene altogether as far as I can tell. Obiwan never updated his for 1.09 unfortunately. At one time I had his ICQ address and a link to his website. I pestered him for awhile about updating his program to 1.09, but, I believe he got heavily into D2 and never found the time to do the update. Anyway, something like Obiwan's program is what you are looking for. The program is called "iident".
Reply
#7
Quote:Hmm, ok. I would only use it for make it text files of my own characters inventory, and direct muling of items between characters while not in game.

As far as I know, nobody has ever made public any details on how character save files work. This is why items have to be exported (and imported) from game memory.

I tried looking for such information a while ago when I was working on a savefile manager, but never managed to find it.
"What contemptible scoundrel stole the cork from my lunch?"

-W.C. Fields
Reply
#8
> As far as I know, nobody has ever made public any details on how character save files work. This is why items have to be exported (and imported) from game memory.

Hmm, I find that very interesting. We know so much about the game, so is there any reason we can't peek into the player save files? :) Then maybe this is harder than expected, but I'm still going to try and pursue it. Trying to contact Obiwan[CB] as we speak. :)

LennyLen, did you at least come up with any leads?

Thanks,
NatNit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#9


>possible, I'd just like a text dump of my own character's inventory, for item collecting purposes (so I don't have to go through and write the items for every single thing, etc).

Ah, mea culpa. So if I read that right, you're looking for more or less, a database?





Reply
#10
Just to make it clear, Obiwan's program only works with a game running, so you would have to start a game, export an item from a characters inventory (which automatically deletes it) and start a new game with the new character and import the item from the file into the transferee character's inventory. That process deletes the item from the file to which it was exported.
Reply
#11
I figured as much, actually. So the usefulness would be limited, but it would still have some use. Oh well.

At any rate, thanks for all the help thenryb. The search would have been impossible without ya. :lol:

-natnit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#12
Uh, kinda. If I tell you what my real plans are, you'll think I'm crazy. Eh, might as well tell you.

(1) Find all uniques (yes HoS SoS DH etc) (any way to calculate how many more Laz runs and NM/lvl 2 runs required?)

(2) (Maybe) When looking at an armor, only accept highest in range. ie 50 AC Naj's etc (could become too frustrating)

(3) Hidden them all to 255 :) (probabilities for finding a given shrine in dlvls 1-8)?

This is a ridiculous idea, I know. But it's the kind of thing I'd have fun with, although I'd never finish. But anyway, having a series of unique-holding mules, each numbered, with some sort of text file explaining what they're holding would make my life much easier.

Cheers,
natnit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#13
LennyLen,Apr 20 2006, 03:00 AM Wrote:As far as I know, nobody has ever made public any details on how character save files work.  This is why items have to be exported (and imported) from game memory.

I tried looking for such information a while ago when I was working on a savefile manager, but never managed to find it.
[right][snapback]107815[/snapback][/right]


I don't think anyone ever bothered to go for the save files since it was so much easier to read the memory while program was running. If I recall correctly, the save files are in some way encrypted (no big problem since both encryption and decryption code/key are on your computer). Probably there is some checksums as well. The actual save structure of the character file is easy to locate and find, it is in much a copying of the data in memory with a lot of information striped out since it is about current game status. SIngle player save files are more of a big complete dump I would say. How that record of character data is then inserted into a character file I have never bothered looking at though and I have not seen anyone ever do it either.
There are three types of people in the world. Those who can count and those who can't.
Reply
#14
Gosh, I really love reading your posts Jarulf (based off the past 27 pages of forum pages). You're essentially the authoritative source of anything Diablo when it comes to technical matters, and it's cool to see someone that can follow everything up with cold hard fact. :)

Anyway, I still find this surprising, since I'm sure at least the people that wanted to make trainers/hacks/cheats/all that garbage would want to make it easiest on themselves. And it's just that we know so much at this point, that I'm amazed that this "simple" thing lies in the realm of unknown.

Anyway, I personally want to solve this "mystery", if at least to fulfill my curiousity. I know nothing about reading the game code or about hex, but as I said, I'm willing to learn/read, and devote a good amount of time to it.

Anyone willing to take me under their wing and at least point me in the right direction?

Thanks again,
natnit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#15
NatNit,Apr 21 2006, 09:59 AM Wrote:Anyway, I still find this surprising, since I'm sure at least the people that wanted to make trainers/hacks/cheats/all that garbage would want to make it easiest on themselves. And it's just that we know so much at this point, that I'm amazed that this "simple" thing lies in the realm of unknown.

The easiest and simplest thing for anything trainer and cheat related is to do it live while you run the program and to access memory directly. That is for example the only way to get non morphing items (basically all most of the "hacked" ones) onto your char or manipulate your character in various other ways.
There are three types of people in the world. Those who can count and those who can't.
Reply
#16
Hi, NatNit,

NatNit,Apr 19 2006, 06:32 AM Wrote:Note: I've been playing this game for some time, and have never done anything that I considered cheating, and I have no intention of starting now. So don't misconstrue anything I say in this post. :)

To start, I've read these articles on scanners:

Archive of Chaos

Hmmm, glad to see the old site is still of use to someone. :)



>>Now, the issue. I have a problem. I'm a packrat, and I've come to terms with it. In my most recent stint on Diablo 2, I used the program ATMA (for those of you that are familiar with it) that essentially allows one to trade among single player characters. For me, this greatly increased the longetivity of the game, and made it more enjoyable.

Ah, I know the trials and tribulations of being a packrat - my sympathies. :( :D


>>Why don't I just go out on bnet and transfer there? To be honest, I have no problem doing that, but 1) there simply aren't enough people on to help me do this, and 2) even if there are, they're likely to be playing a game and not just lounging around waiting to help me.

One issue not addressed by you or anyone else, is, do you play multi on b-net for any other reason than to transfer items?

If not, then just install Diablo, patch it to 1.07 or 1.08, use one of the programs mentioned, and don't bother to go online at all. It's also possible to have both 1.07 and 1.09 on your machine at once, just change the name of the directory as appropriate depending on whether you want to play on-line or not. Although this, of course, would leave any 1.09-derived items not backed up.

I haven't been on b-net for years, never was big into on-line play, mostly just kibitzed in channel, or the last couple of years of the DSF, just played during reunions. :)

So, when I install Diablo these days, I just patch it to 1.07, and, if necessary, I can still use the item files I exported back when 1.07 was current.

At least some trainers allow you to name the items as you like, so you could put in parentheses any info you want to keep track of about that particular item (there may be limits on the # of characters you can have in the name less than Windows allows). So, for example, after the name King's Broad Sword of Haste, you could add: (110% to hit, +45 DAM). This is basically what I do. [and those numbers are probably way off what is appropriate for a KBSOH, I just pulled them out of thin air for illustration]

It's interesting that people referred to Stu's "auto-destroy upon import/export' function, which totally screwed up a couple of my characters, after which I quit using his program. Frankly, if one set's rules for how you will use item files that don't allow cheating, and have the will-power to follow those rules, why do you need a program to enforce legit behavior? Apparently, most suspect (or know :) ) they don't have the will-power to follow their own self-prescribed rules, and will give in to the temptation to fudge the boundaries of legit play. lol Hmmm, could be a master's thesis in that whole area. B)

If you do pursue this, more power to you, but if you don't have to re-invent the wheel, why bother?

Added in edit: OK, the above was written on 3 hours sleep in prior 28 or so hours, and I wasn't thinking too clearly - obviously, if NatNit has been playing in 1.09 or what ever the current version is, he will have characters/items that need backing up that won't be backwardly compatible with version 1.07 or 1.08. This occurred to me a half-hour or so after posting and getting off the internet. :rolleyes:

So, basically, ignore my entire post... :P


Regards,

Dako-ta
Reply
#17
Dako-ta,Apr 21 2006, 01:33 PM Wrote:If you do pursue this, more power to you, but if you don't have to re-invent the wheel, why bother?
Regards,

Dako-ta
[right][snapback]107971[/snapback][/right]

Because it makes you feel all warm and fuzzy inside.
Reply
#18
*grumble* Why do you want a text database? Exporting it to XML would be so much nicer (and, well, more extensible! ;)). I've never bothered to take apart the on-disk save files, but I do have some working code that will automatically create XML dumps of every character in your character directory, whenever it gets loaded. Since Diablo loads all the characters to present a listing to you, this means they get dumped any time you start to enter multiplayer. Combine that with an XSL stylesheet to format it for presentation, and it becomes very easy to inventory your characters -- 10 at a time, no less! :) I don't play single player, so I've never checked whether it dumps those. Hopefully it doesn't, since the filenames don't distinguish between single player and multiplayer.

Transferring items between characters isn't particularly interesting to me (i.e. I haven't bothered to write it), but it is very easy. Just copy the item from player inventory into an extra buffer, fix up the inventory redirection array (to make the item disappear from inventory and free the associated space), fix the item count (to avoid strange behavior when you fill your inventory), and you're done. :) Stu probably caused corruption because he skipped one of the fix-up steps, or had the address of the array wrong and clobbered some adjoining data. I don't see anything near the inventory data that looks particularly critical to proper character function, but I've no idea how far afield he was writing.

I can see one great value to having the item automatically erased when it's exported. You can then use the export in a multi-person game and be assured that no one else will pick up the in-game copy of the item (nor any gold derived from selling the item as a disposal method).
Reply
#19
Kp, you are amazing, mate. :)

Now that you mention it, I suppose XML would be preferable anyway, but I just suggested text because I figured it'd be easier to implement. If it makes life easier in all aspects, heck, why not.

I'll probably talk with you more in depth on the channel. Thanks!

--NatNit
~NatNit~

NatAmused(LoL) - LoL Mage (26)
NaughtyNat(LoL) - LoL Rogue (12)
FuzzyNat(LEM) - Lemming (11)
NatNit - Arty Sorc (36)
NakeyNat(NM) - Naked Mage (14)
SailorNat(BNM) - Beyond Naked Mage (9)
Reply
#20
Jarulf,Apr 20 2006, 10:55 PM Wrote:I don't think anyone ever bothered to go for the save files since it was so much easier to read the memory while program was running. If I recall correctly, the save files are in some way encrypted (no big problem since both encryption and decryption code/key are on your computer). Probably there is some checksums as well. The actual save structure of the character file is easy to locate and find, it is in much a copying of the data in memory with a lot of information striped out since it is about current game status. SIngle player save files are more of a big complete dump I would say. How that record of character data is then inserted into a character file I have never bothered looking at though and I have not seen anyone ever do it either.
[right][snapback]107923[/snapback][/right]

As fas as I recall, in the earlier versions of D1 the save files were encrypted using the computer name as a key, leading to the dreaded consequence of not being able to transfer old characters to a new computer unless you actually knew the name of your old computer and were willing to give the new computer the same name as your old one (which, of course, any loyal, legitimate D1 player was).

At some point (1.09?), long past the time where it had any relevance, Bliz abondoned their futile (as they would be on any client-side sofware) last minute (because my guess is the multiplayer aspects of D1 were tacked on at the end almost as an after thought) smoke-and-mirrors attempt at anti-cheating measures, and de-encrypted the save files.

Enigma, who was led to make his original 'trainer' simply to back-up a friend's characters, once gave some interview in which he laughed at Bliz for encrypting the disc files but leaving the memory data wide open.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)