topaz-next / topaz

💎 A server emulator for Final Fantasy XI.
GNU General Public License v3.0
56 stars 80 forks source link

[canary] crashes when i goto towards a character who is in the mog house #2589

Open Chronos77 opened 3 years ago

Chronos77 commented 3 years ago

Additional Information (Steps to reproduce/Expected behavior) : Have 2 characters : One on the mog house and one have access to goto commands (GM)

Make command !goto NameOfTheCharacterInTheMog with GM

Server process was kill

Nothing in the log just kill process: last lines:

[07/Feb] [18:03:37] [Action Info]  CLIENT Zant PERFORMING ACTION 07
[07/Feb] [18:03:37] [Info]  parse: 0B5 | 00D2 00D1 0C from user: Fleme
[07/Feb] [18:03:38] [Debug]  Message: Received message 13 from message server
[07/Feb] [18:03:38] [Debug]  Message: Received message 13 from message server
Chronos77 commented 3 years ago

@claywar Character (noGM) Hume (F) Nation: Bastok Places during the events: Mog House (Bastok mines)

Character (GM) Mithra Nation: Windurst Places during the events: Bastok mines (out of the mog)

ghost commented 3 years ago

I wonder if its the out of nation vs in nation part causing issues. Was unable to reproduce this morning with two characters both from San d'Oria. Will check this out later today.

Chronos77 commented 3 years ago

Another precision for this bug, i think it's "gotoPlayer(target)" function if i comment this it's ok.

I don't know if this line is still useful

 if targ and not targ:isInMogHouse() then
        player:setPos(targ:getXPos(), targ:getYPos(), targ:getZPos(), targ:getRotPos(), forceZone == 1 and targ:getZoneID() or nil)
    elseif not player:gotoPlayer(target) then
         error(player, string.format("Player named: %s not found!", target))
    end
TeoTwawki commented 3 years ago

sending forceZone == 1 and targ:getZoneID() or nil where the zoneid arg is for setPos() doesn't look sane to me.