PlaneShift

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category
  • Assigned To No-one
  • Operating System
  • Severity Medium
  • Priority
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes 1
  • Private
Attached to Project: PlaneShift
Opened by vickie - 09.03.2008
Last edited by Andrew Dai - 29.03.2008

FS#1214 - Client Crash with helmets as a female dermorian

When i enter our Guildhouse I get an “Access Violation Code” and PS shuts down on me. If I try to take my Alt into the Guild House , everything is ok. Can you help me with this?

Closed by  Andrew Dai
29.03.2008 17:39
Reason for closing:  
Sulga Xenopoth commented on 10.03.2008 18:57

Same problem I think

here is the crash report: http://paste2.org/p/15541

Sulga Xenopoth commented on 10.03.2008 19:31

some additional information about my system

Distri: Kubuntu 7.10 Gutsy Gibbon
Kernel: 2.6.22-14-generic
Architecture: i686
CPU: AMD Athlon™ 64 X2 Dual Core Processor 6000+
RAM: 3035 Mb
Video: GeForce 7600 GS 512Mb
Qt: 3.3.7
KDE: 3.5.8

vickie commented on 11.03.2008 02:54

well if it is not a bug..how do we fix it?

Arianne Slaager commented on 11.03.2008 03:42

Same happens to Jenita, XP Pro. I have the same OS, no troubles.

Arianne Slaager commented on 11.03.2008 04:58

It looks like the Female Dermorian char is the culprit. Jenita made a new char, a stonebreaker, and got in fine. Another clean char, also a female dermorian, failed blatantly.

Steven Schwartfeger commented on 12.03.2008 09:26

I tried three different female dermorian characters on my server, they don’t crash when I enter guildlaw, either by teleport or door action location.

But, I had a pretty good idea of what could be the issue, from the end of sulga’s report:

<src/client/pscelclient.cpp:1051 InitMesh>
Mesh Factory helms#helm03_dermf not found

There is no helm03_dermf in the 0.4 art, you can check in art/things/helms.zip.

This is not necessarily a bug, if you look in the helms zip, not all races have a helm .spr. The reason is that some races have a similar enough head to use the same mesh… so, in the server database table “race_info”, there is a field “helm”, which for example expands “helm03_$H” in the common_strings table as “helm03_ylianm”, if you are a klyros, and the klyrosm helm entry in race_info is ylianm.

So, it seems the laanx database admins put “dermf” for helm in the female dermorian row, when there is no such mesh. I just tested on laanx with a dermf of my own, and got a crash. Then I picked up the helm that was in the guild house, and no crash, Caleta also verified. Incidentally, it seems the race_info mesh is used for items on the ground as well, so dwarves will see the same helmet on the ground much bigger than a dermorian would.

A temporary workaround is to put all helmets in your guild house in a sack, until either the database is modified, or the mesh file is made.

Here is the link to the full backtrace: http://www.pastebin.ca/939455

#0 GEMClientObject::SetPosition (this=0x10296da0, pos=@0x7fff06df2148, rot=0.930000007, sector=0x2aaac5b8a800) at src/client/pscelclient.cpp:1003
1003 pcmesh→GetMovable ()→SetSector (sector);
(gdb) bt
#0 GEMClientObject::SetPosition (this=0x10296da0, pos=@0x7fff06df2148, rot=0.930000007, sector=0x2aaac5b8a800) at src/client/pscelclient.cpp:1003
#1 0x000000000048909c in GEMClientObject::Move (this=0x10296da0, pos=@0x7fff06df2148, rotangle=0.930000007, room=0x7fff06df2118 “guildlaw”)

  at src/client/pscelclient.cpp:1024

#2 0x0000000000489a55 in GEMClientItem (this=0x10296da0, cel=0xcd2570, mesg=@0x7fff06df1fd0) at src/client/pscelclient.cpp:1614
#3 0x000000000048d6c7 in psCelClient::HandleItem (this=0xcd2570, me=<value optimized out>) at src/client/pscelclient.cpp:383
#4 0x000000000048dcad in psCelClient::CheckEntityQueues (this=0xcd2570) at src/client/pscelclient.cpp:647
#5 0x00000000004771b1 in psEngine::HandleEvent (this=0xc2f2b0, ev=@0x2aaab105b980) at src/client/psengine.cpp:759
#6 0x000000000047f70d in psEngine::EventHandler::HandleEvent (this=<value optimized out>, ev=@0x7fff06df2148) at src/client/psengine.h:224
#7 0x0000000000541c0b in csEventTree::Dispatch (this=0xb51100, e=@0x2aaab105b980) at libs/csutil/cssubscription.cpp:576
#8 0x00000000005420c8 in csEventTree::Notify (this=0xb51100) at libs/csutil/cssubscription.cpp:546
#9 0x00000000005091dd in csEventQueue::iTypedFrameEventDispatcher::HandleEvent (this=<value optimized out>) at libs/csutil/cseventq.cpp:277
#10 0x0000000000541c0b in csEventTree::Dispatch (this=0xafe4f0, e=@0x2b1ba3d420a0) at libs/csutil/cssubscription.cpp:576
#11 0x00000000005420c8 in csEventTree::Notify (this=0xafe4f0) at libs/csutil/cssubscription.cpp:546
#12 0×0000000000505645 in csEventQueue::Process (this=0x2b1ba3d2b4d8) at libs/csutil/cseventq.cpp:277
#13 0x00000000004c30a2 in csDefaultRunLoop (r=0x2b1ba3d28068) at libs/csutil/generic/runloop.cpp:91
#14 0x0000000000479b49 in main (argc=<value optimized out>, argv=<value optimized out>) at src/client/psengine.cpp:1909
#15 0x00002b1ba4f48b74 in __libc_start_main () from /lib/libc.so.6
#16 0x0000000000404da9 in _start ()

Steven Schwartfeger commented on 12.03.2008 09:34

Also changing the title. So probably the client crash should be fixed, but the options to work around it are:

To change the helm entry in the dermf row of race_info to another race, which would allow female dermorian’s helmets to show, but at the wrong angle on their head (looks really silly), so obviously the cal3d file in the art would need to be modified to align them correctly.

Or, to make another dermf mesh file for all helms and release it with the updater.

Steven Schwartfeger commented on 12.03.2008 10:08

Patch to stop the client crash: http://www.pastebin.ca/939475 Tested on laanx.

I just copied the code from the corresponding part in the GEMClientActor constructor, except I had to change mesg.entityid in the error message to mesg.id, as psPersistItem does not inherit from psStatDRMessage, unlike psPersistActor.

Note that players of female dermorians will not be able to see any helmets that are dropped, until the art or database are changed.

Andrew Dai commented on 29.03.2008 17:39

Committed the patch, great work.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing