PDA

View Full Version : SEQ broken on Test Server?



Superd00d
09-05-2003, 11:50 PM
Got the SEQ 4.3.10 tarball and it was working fine up until the patch before last. Now the decodes are partially broken. 95 percent of spawn detail is now gone. Map will load sometimes when I zone. Then it disappears and spawns on map are all tweaked. I tried rebuilding it before I came on here. Still get same issues. Was wondering if anyone else has had success with Test right now? Or did the structure change? It was working great for me. (cry) now I'm blind again....

Superd00d :(

fester
09-06-2003, 12:28 AM
Very likely an opcode/decode.cpp change. Possibly some struct changes also.

Opcode and/or decode.cpp will make ShowEQ not display anything.

Struct Changes will produce "WARNING sizeof blah != blah" type errors and (most importantly) will be very likely to cause ShowEQ to segfault (bus error, sigsegv, etc.)

guice
09-06-2003, 09:55 AM
Stuff always happens on test before it happens on live servers. That's the way it is. SEQ is built for live servers only.

So yeah, most likely it broke on test again, which means on patch, it will most likely break on Live servers.

If you're a Dev, you can try and fix SEQ for yourself. Else you can hold tight, not say a word and just wait patiently for an update. ;)

x b
09-08-2003, 08:04 PM
I got skittles again by adding a byte to the SpawnStruct. Test added another byte, however, I dont know excatly where except it was after the name of the mob.

I am also unsure of any other changes, because I really was just trying to get skittles back, not fix everything. History tells us that from test to live it will most likely change even more.

x_b

Zaphod
09-08-2003, 08:53 PM
Originally posted by x b
I got skittles again by adding a byte to the SpawnStruct. Test added another byte, however, I dont know excatly where except it was after the name of the mob.

I am also unsure of any other changes, because I really was just trying to get skittles back, not fix everything. History tells us that from test to live it will most likely change even more.

x_b
It appears to me that the byte was added to the end to round out the structure to an even number of bytes.

Also, there is nothing preventing us from having ShowEQ support test, as long as people are willing to maintain it. The configure command supports a --with-test-server option that causes the compiler macro TEST_SERVER to be defined. As long as submissions of support for TEST_SERVER have there changes encapsulated in appropriate #ifdef's there shouldn't be a problem. By appropriate #ifdef's I mean something akin to the following:


/*
** Generic Spawn Struct
** Length: 255 Octets
** Used in:
** spawnZoneStruct
** dbSpawnStruct
** petStruct
** newSpawnStruct
*/

#ifdef TEST_SERVER
struct spawnStruct
{
/*000*/ int32_t race; // race
/*004*/ char unknown004[4];
/*008*/ uint8_t class_; // class
/*009*/ uint16_t level;
/*011*/ char unknown011[1];
/*012*/ int8_t curHp;
/*013*/ char unknown013[2];
/*015*/ uint8_t NPC; // 0=player,1=npc,2=pc corpse,3=npc corpse,
// 4=???,5=unknown spawn,10=self
/*016*/ char unknown016[6];
/*022*/ int32_t maxHp; // max hp
/*026*/ uint8_t gender; // 0=male, 1=female, 2=other
/*027*/ unsigned heading:12;
signed deltaHeading:10;
unsigned animation:10;
/*031*/ signed deltaX:13;
signed x:19;
/*035*/ signed y:19;
signed deltaZ:13;
/*039*/ signed deltaY:13;
signed z:19;
/*043*/ char unknown043[2];
/*045*/ uint16_t spawnId; // Id of spawn
/*047*/ char unknown047[3];
/*050*/ char lastName[20]; // lastname
/*070*/ char unknown070[12];
/*082*/ int32_t equipment[9]; // 0=helm, 1=chest, 2=arm, 3=bracer
// 4=hand, 5=leg 6=boot, 7=melee1, 8=melee2
/*118*/ char name[64]; // name
/*182*/ int32_t dyergb[7]; // armor dye colors
/*210*/ char unknown210;
/*211*/ uint8_t light;
/*212*/ char unknown212[20];
/*232*/ int32_t guildID; // GuildID
/*236*/ char unknown236[1];
/*237*/ uint32_t typeflag; // Bodytype
/*241*/ char unknown241[4];
/*245*/ uint16_t petOwnerId;
/*247*/ char unknown247[2];
/*249*/ int16_t deity; // deity
/*251*/ char unknown251[7];
}; // 258 bytes
#else
struct spawnStruct
{
/*000*/ int32_t race; // race
/*004*/ char unknown004[4];
/*008*/ uint8_t class_; // class
/*009*/ uint16_t level;
/*011*/ char unknown011[1];
/*012*/ int8_t curHp;
/*013*/ char unknown013[2];
/*015*/ uint8_t NPC; // 0=player,1=npc,2=pc corpse,3=npc corpse,
// 4=???,5=unknown spawn,10=self
/*016*/ char unknown016[6];
/*022*/ int32_t maxHp; // max hp
/*026*/ uint8_t gender; // 0=male, 1=female, 2=other
/*027*/ unsigned heading:12;
signed deltaHeading:10;
unsigned animation:10;
/*031*/ signed deltaX:13;
signed x:19;
/*035*/ signed y:19;
signed deltaZ:13;
/*039*/ signed deltaY:13;
signed z:19;
/*043*/ char unknown043[2];
/*045*/ uint16_t spawnId; // Id of spawn
/*047*/ char unknown047[3];
/*050*/ char lastName[20]; // lastname
/*070*/ char unknown070[12];
/*082*/ int32_t equipment[9]; // 0=helm, 1=chest, 2=arm, 3=bracer
// 4=hand, 5=leg 6=boot, 7=melee1, 8=melee2
/*118*/ char name[64]; // name
/*182*/ int32_t dyergb[7]; // armor dye colors
/*210*/ char unknown210;
/*211*/ uint8_t light;
/*212*/ char unknown212[20];
/*232*/ int32_t guildID; // GuildID
/*236*/ char unknown236[1];
/*237*/ uint32_t typeflag; // Bodytype
/*241*/ char unknown241[4];
/*245*/ uint16_t petOwnerId;
/*247*/ char unknown247[2];
/*249*/ int16_t deity; // deity
/*251*/ char unknown251[6];
}; // 257 bytes
#endif



Enjoy,
Zaphod (dohpaZ)

Superd00d
09-09-2003, 12:12 AM
Thanks a ton! I appreciate the help Zaphod!

Now, at the risk of sounding like a complete idiot (which I am).

Which file does this code need to be inserted in? I went through the /src folder and I tried to figure which file contained the spot to insert. And damned if I can find it. Sorry. :(

Superd0rk

EDIT: 9-9-03: Nevermind, found where to insert after reading another post. I'm dumb.