deleted because I'm a tard. Need to patch the same directory, that I am compiling.
deleted because I'm a tard. Need to patch the same directory, that I am compiling.
Last edited by pita; 10-21-2010 at 05:30 PM.
LOL...happens to everyone eventually
Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz
ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#
Famous Quotes:
Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)
Razzle: I showeq my wife
Test Server Patch on 10/25 introduced a problem with debug messages filling the terminal similar to "SpawnShell::fillSpawnStruct - expected length: 123, read: 124 for spawn 'soandso'"
Make the following change and recompile to fix the message:
src/spawnshell.cpp
Code:// unknowns netStream.skipBytes(8); spawn->isMercenary = netStream.readUInt8(); // unknowns -- changed from 28 to 54 for HoT Patch 10/25 netStream.skipBytes(54); // now we're at the end
The Jan. 26 2011 patch on Test server seems to have introduced a change to how corpse clean-up is handled. No longer is OP_DeleteSpawn sent after a player-related corpse disappears. This includes player corpses, familiars, pets, and swarm pets. As a result SEQ doesn't remove the corpse from the spawn list or the map.
NPC corpses are still handled the old way. The packet order is generally OP_Death, Op_RemoveSpawn, OP_DeleteSpawn. Now on PC related corpses it is just OP_Death, OP_RemoveSpawn.
Spending any length of time in a zone rapidly builds up tons of mobs and eventually SEQ becomes unstable.
It might help to capture plenty of logs this weekend from live servers, just in case. I'm going to keep working on it to see if I can figure out exactly what was changed, this is just a heads up since I'm not sure when this might (if ever) go live.
Thanks for the heads up sammie. I was looking at those opcodes earlier this week. Will have to tie removing Player corpses to OP_RemoveSpawn if this goes live probably.
Razzle
I'm testing a fix tonight that is working so far. I'm sure it's not the proper way to go but it is keeping the spawnlist and map clean.
src/spawnshell.cpp:
Also, some zone opcode changes if anyone wants to try out the changes on Test. I'm sure there's some others but they are minor ones.Code:void SpawnShell::removeSpawn(const uint8_t* data, size_t len, uint8_t dir) { if(dir==DIR_Client) return; const removeSpawnStruct* rmSpawn = (const removeSpawnStruct*)data; #ifdef SPAWNSHELL_DIAG seqDebug("SpawnShell::removeSpawn(id=%d)", rmSpawn->spawnId); #endif Item *item; if(len==sizeof(removeSpawnStruct)) { // Hack to fix corpse clean-up change deleteItem(tSpawn, rmSpawn->spawnId); // End Hack if(!rmSpawn->removeSpawn) { // Remove a spawn from outside the update radius if(showeq_params->useUpdateRadius) { // Remove it deleteItem(tSpawn, rmSpawn->spawnId); } else { // Set flag to change its icon if((item=m_spawns.find(rmSpawn->spawnId))) { Spawn *s=(Spawn*)item; s->setNotUpdated(true); } } } } else if((len+1)!=sizeof(removeSpawnStruct)) { seqWarn("OP_RemoveSpawn (dataLen: %d) doesn't match: sizeof(removeSpawnStruct): %d", len,sizeof(removeSpawnStruct)); } }
zoneopcodes.xml:
Code:<opcode id="5D24" name="OP_NpcMoveUpdate" updated="01/26/11"> <comment>Position updates</comment> <payload dir="server" typename="uint8_t" sizechecktype="none"/> </opcode> <opcode id="1D85" name="OP_DeleteSpawn" updated="01/26/11"> <comment>old DeleteSpawnCode</comment> <payload dir="both" typename="deleteSpawnStruct" sizechecktype="match"/> </opcode>
Test server patch for 2-2-2011 causes segfault on OP_PlayerProfile. Adding 360 to the structure fixes the segfault, currently testing the following change to everquest.h that seems to fix the problem:
/*10572*/ uint8_t unknown10572[920]; // Test Patch add 360 (was 560) 2-2-2011
There are currently 1 users browsing this thread. (0 members and 1 guests)