azone2 question
I'm not sure where to post this, since most of the discussion on it seems to be in the developer forums.
Hopping NPCs are getting under my skin, and I notice that one of the zones does not have a .map file. (I would like to use Blightfire Moors to test some things). I built azone2 on a Linux box and ran it against the eqg file: $ azone2 moors AZONE2: EQEmu .MAP file generator with placeable object support. Unable to open container file 'moors.eqg' (The file opened OK, but the archiver couldn't read the zone data) I obtained a Windows executable from http://eqemumaps.googlecode.com/svn/trunk/azone_utils/ and ran that: E:\underfoot>\Azone2.exe moors AZONE2: EQEmu .MAP file generator with placeable object support. Error reading ZON/TER from moors.eqg The EQG version in Underfoot may be newer than azone2 can handle. Or I may be using azone2 wrong. Any suggestions? |
I just tried it on Linux (32-bit) and Win7 (64 bit, although azone2 was compiled as 32 bit), and it works for me:
Code:
D:\EQClients\Underfoot>dir moors.eqg |
Maybe that azone2 executable is from before the EQGv4 types were supported. I always compile my own azone2 straight from the source here:
http://code.google.com/p/projecteqem...utils%2Fazone2 And that always works fine for all zones currently available so far that I have tried. |
Thanks for the responses. I am building on 64-bit Linux. I rebuilt azone2 as a 32-bit application and it runs fine.
And most importantly, the mobs in Moors follow the terrain now. For any Fedora folks out there, you'll need: zlib-devel-1.2.5-6.fc16.i686 I looked into building a working 64-bit version. There is some sort of sizing error, as the following is 20 bytes long rather than 12. Probably alignment. Code:
struct struct_header { |
It could be alignment or it could be that unsigned long is actually 64 bits.
The output from this would determine either or both cases: Code:
#include <stdio.h> |
The output:
sizeof 24 8 offset 8 16 My understanding of the C++ standard was that unsigned long is always 32 bits. If you want a 64-bit integer use "long long" or "unsigned long long". But that does not appear to be the case anymore. In any event, I'll change the headers to use uint32 and see if that helps. At best a nitpick since I can run it as a 32-bit application. But I spent enough time looking into this, so I might as well track down the source of the problem. |
The C, and consequentially C++ standard only requires that a type have a minimum size, not a maximum. An unsigned long is guaranteed to hold a value of 0 to 4294967295, which requires 32 bits. An unsigned int is guaranteed to hold a value of 0 to 65535, or 16 bits, but on most 32-bit platforms it is 32 bits as well because that is the fastest register size on that platform.
In your case, it's clear that unsigned long is 64-bits. As far as I know, on Linux, an unsigned int is 32 bits for both 32-bit and 64-bit programs. On Windows, unsigned long is also 32 bits for both. C99 and C++ 11 define various guaranteed size types, but multiplatform support for both standards is a bit sketchy, so if you go down that road you may run into problems. I believe GCC has supported the C99 types for a while, but Visual Studio did not include the header until VC++ 10. If you're really lucky, when you change that to unsigned int you'll get 12, 4, 4, 8 as the output from that program which is what you're looking for. If the offsets are different than that you'll need to add #pragma pack(push, 1), #pragma pack(pop) around the struct definition to force it. |
I got azone2 to work for old zone like guktop but can't get it to work for later expansion zone like oldcommons.
|
azone2 different than just regular azone? I compiled azone and it was able to do the newer zones just fine.
|
Was exe downloaded, probably old version, couldn't handle the newer zone, only created map for older zones. I didn't compile my own azone.
|
hate to resurrect an old thread but using azone2 downloaded from the wiki i had 1 zone that failed to let me make and that is thuliasaur. any idea why that is? i have a copy of live and the rof2 for the emu, and im trying to get all the maps the way they are on live for my server and thuliasaur causes azone2 to crash.
and so you know when i do this command from the directory i have live in i run it like this azone2.exe thuliasaur then after 10 sec i get a pop up saying that azone2 as stopped working with 2 click boxes debug and close. |
They do some really dumb shit with maps .. We haven't accounted for all of them and the dev hasn't had the free time to account for all their dumb shit.
|
lol i like the bluntness demonstar55, like i said it was the only zone i could not map, so ill have to deal until the dev can account for that zone. thanks for the reply
|
All times are GMT -4. The time now is 11:38 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.