PandasWS/Pandas

atcommand "@warp " 找不到角色時崩潰

Hong-Shin opened this issue · 5 comments

缺陷描述

某些腳本會使用關聯玩家在進行指令傳送
途中當玩家離線會造成傳送時崩潰

重现步骤

prontera,160,160,4 script test 100,{
sleep 5000;
atcommand "@warp payon 150 150";
end;
}

點擊NPC後 在5秒內登出

预期的正确行为

跳過該玩家的傳送

截图

QQ图片20210822160448

程序编译模式 (请完善以下信息):

  • 操作系统: Windows 10 x64
  • 编译工具: Visual Studio 2019
  • 代码版本: 1.1.5
  • 封包版本: 20200304
  • 工作模式: 复兴后

其他附加信息

您可以在此补充与此问题相关的其他一切信息.

在atcommand前 先檢查一次角色是否在線上
就可以解決此問題了

此问题确实存在,下次熊猫还没 fix 的话先不要 close

当使用 atcommand 的目标玩家不存在时,在 atcommand_sub 函数中会构建一个 dummy_sd ,这个玩家对象并非真实存在,所以导致后面执行 pc_setpos 转移目标玩家位置时,地图服务器崩溃。

做了一些更加严格的检查,确保执行 pc_setpos 的时候玩家是真实有效的。此情况同样适用于 @jump / @go 等指令,现在应该都一并修正了

此问题已解决,如果还有与其相关的其他情况,可以重新打开此问题